home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER52D.ZIP / PORTS.LST < prev    next >
File List  |  1996-10-20  |  274KB  |  7,235 lines

  1. PORT LIST            Release 52        Last change 20oct96
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3. [This file originally by Wim Osterholt (2:512/56 or wim@djo.wtm.tudelft.nl),
  4.  though it has grown considerably since.]
  5.  
  6.         XT, AT and PS/2     I/O port addresses
  7.  
  8. Do NOT consider this information to be complete and accurate.  If you want
  9. to do hardware programming ALWAYS check the appropriate data sheets (but
  10. even they are sometimes in error!).  Be aware that erroneous port programming
  11. can put your data or even your hardware at risk. 
  12.  
  13. There are a number of memory-mapped addresses in use for I/O; see MEMORY.LST
  14. for details on memory-mapped I/O.
  15.  
  16. ---------------------------------------------
  17. Note: the port description format is:
  18.  
  19. PPPPw RW  description
  20.  
  21. where:    PPPP    is the four-digit hex port number
  22.     w    is blank for byte-size port, 'w' for word, and 'd' for dword
  23.     R    is blank or dash if not readable, 'r' if sometimes readable,
  24.         'R' if "always" readable, '?' if readability unknown
  25.     W    is blank or dash if not writable, 'w' if sometimes writable,
  26.         'W' if "always" writable, '?' if writability unknown
  27. ----------P0000001F--------------------------
  28. PORT 0000-001F - DMA 1 - FIRST DIRECT MEMORY ACCESS CONTROLLER (8237)
  29.  
  30. 0000  RW  DMA channel 0     address byte  0, then byte 1
  31. 0001  RW  DMA channel 0 word count byte 0, then byte 1
  32. 0002  RW  DMA channel 1     address byte  0, then byte 1
  33. 0003  RW  DMA channel 1 word count byte 0, then byte 1
  34. 0004  RW  DMA channel 2     address byte  0, then byte 1
  35. 0005  RW  DMA channel 2 word count byte 0, then byte 1
  36. 0006  RW  DMA channel 3     address byte  0, then byte 1
  37. 0007  RW  DMA channel 3 word count byte 0, then byte 1
  38.  
  39. 0008  R-  DMA channel 0-3 status register (see #P001)
  40. 0008  -W  DMA channel 0-3 command register (see #P002)
  41. 0009  -W  DMA channel 0-3 write request register (see #P003)
  42. 000A  RW  DMA channel 0-3 mask register (see #P004)
  43. 000B  -W  DMA channel 0-3 mode register (see #P005)
  44.  
  45. 000C  -W  DMA clear byte pointer flip-flop
  46. 000D  R-  DMA read temporary register
  47. 000D  -W  DMA master clear
  48. 000E  -W  DMA clear mask register
  49. 000F  -W  DMA write mask register
  50.  
  51. Bitfields for DMA channel 0-3 status register:
  52. Bit(s)    Description    (Table P001)
  53.  7    channel 3 request active
  54.  6    channel 2 request active
  55.  5    channel 1 request active
  56.  4    channel 0 request active
  57.  3    channel terminal count on channel 3
  58.  2    channel terminal count on channel 2
  59.  1    channel terminal count on channel 1
  60.  0    channel terminal count on channel 0
  61. SeeAlso: #P002,#P078
  62.  
  63. Bitfields for DMA channel 0-3 command register:
  64. Bit(s)    Description    (Table P002)
  65.  7    DACK sense active high
  66.  6    DREQ sense active high
  67.  5    =1 extended write selection
  68.     =0 late write selection
  69.  4    rotating priority instead of fixed priority
  70.  3    compressed timing
  71.  2    =1 enable controller
  72.     =0 enable memory-to-memory
  73.  1-0    channel number
  74. SeeAlso: #P001,#P004,#P005,#P079
  75.  
  76. Bitfields for DMA channel 0-3 request register:
  77. Bit(s)    Description    (Table P003)
  78.  7-3    reserved (0)
  79.  2    =0 clear request bit
  80.     =1 set request bit
  81.  1-0    channel number
  82.     00 channel 0 select
  83.     01 channel 1 select
  84.     10 channel 2 select
  85.     11 channel 3 select
  86. SeeAlso: #P004
  87.  
  88. Bitfields for DMA channel 0-3 mask register:
  89. Bit(s)    Description    (Table P004)
  90.  7-3    reserved (0)
  91.  2    =0 clear mask bit
  92.     =1 set mask bit
  93.  1-0    channel number
  94.     00 channel 0 select
  95.     01 channel 1 select
  96.     10 channel 2 select
  97.     11 channel 3 select
  98. SeeAlso: #P001,#P002,#P003,#P080
  99.  
  100. Bitfields for DMA channel 0-3 mode register:
  101. Bit(s)    Description    (Table P005)
  102.  7-6    transfer mode
  103.     00 demand mode
  104.     01 single mode
  105.     10 block mode
  106.     11 cascade mode
  107.  5    direction
  108.     =0 address increment select
  109.     =1 address decrement select
  110.  3-2    operation
  111.     00 verify operation
  112.     01 write to memory
  113.     10 read from memory
  114.     11 reserved
  115.  1-0    channel number
  116.     00 channel 0 select
  117.     01 channel 1 select
  118.     10 channel 2 select
  119.     11 channel 3 select
  120. SeeAlso: #P002,#P081
  121. ----------P0010001F--------------------------
  122. PORT 0010-001F - DMA CONTROLLER (8237) ON PS/2 MODEL 60 & 80
  123. ----------P0018------------------------------
  124. PORT 0018 - PS/2 - EXTENDED FUNCTION REGISTER
  125.  
  126. 0018  -W  PS/2 extended function register
  127. ----------P001A------------------------------
  128. PORT 001A - PS/2 - EXTENDED FUNCTION EXECUTE
  129. ----------P0020003F--------------------------
  130. PORT 0020-003F - PIC 1 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  131. SeeAlso: PORT 00A0h-00AFh"PIC 2",INT 08"IRQ0",INT 0F"IRQ7"
  132.  
  133. 0020  -W  PIC initialization command word ICW1 (see #P006)
  134. 0020  -W  PIC output control word OCW2 (see #P011)
  135. 0020  -W  PIC output control word OCW3 (see #P012)
  136. 0020  R-  PIC  interrupt request/in-service registers after OCW3
  137.         request register:
  138.          bit 7-0 = 0  no active request for the corresponding int. line
  139.              = 1  active request for corresponding interrupt line
  140.         in-service register:
  141.          bit 7-0 = 0  corresponding line not currently being serviced
  142.              = 1  corresponding int. line currently being serviced
  143.  
  144. 0021  -W  PIC ICW2,ICW3,ICW4 immed after ICW1 to 0020 (see #P007,#P008,#P009)
  145. 0021  RW  PIC master interrupt mask register OCW1 (see #P010)
  146.  
  147. Bitfields for PIC initialization command word ICW1:
  148. Bit(s)    Description    (Table P006)
  149.  7-5    0 (only used in 8080/8085 mode)
  150.  4    ICW1 is being issued
  151.  3    (LTIM)
  152.     =0  edge triggered mode
  153.     =1  level triggered mode
  154.  2    interrupt vector size
  155.     =0 successive interrupt vectors use 8 bytes (8080/8085)
  156.     =1 successive interrupt vectors use 4 bytes (80x86)
  157.  1    (SNGL)
  158.     =0  cascade mode
  159.     =1  single mode, no ICW3 needed
  160.  0    ICW4 needed
  161. SeeAlso: #P007,#P008,#P009
  162.  
  163. Bitfields for PIC initialization command word ICW2:
  164. Bit(s)    Description    (Table P007)
  165.  7-3    address lines A0-A3 of base vector address for PIC
  166.  2-0    reserved
  167. SeeAlso: #P006,#P008,#P009
  168.  
  169. Bitfields for PIC initialization command word ICW3:
  170. Bit(s)    Description    (Table P008)
  171.  7-0    =0 slave controller not attached to corresponding interrupt pin
  172.     =1 slave controller attached to corresponding interrupt pin
  173. SeeAlso: #P006,#P007,#P009
  174.  
  175. Bitfields for PIC initialization command word ICW4:
  176. Bit(s)    Description    (Table P009)
  177.  7-5    reserved (0)
  178.  4    running in special fully-nested mode
  179.  3-2    mode
  180.     0x nonbuffered mode
  181.     10 buffered mode/slave
  182.     11 buffered mode/master
  183.  1    Auto EOI
  184.  0    =0  8085 mode
  185.     =1  8086/8088 mode
  186. SeeAlso: #P006,#P007,#P008
  187.  
  188. Bitfields for PIC output control word OCW1:
  189. Bit(s)    Description    (Table P010)
  190.  7    disable IRQ7 (parallel printer interrupt)
  191.  6    disable IRQ6 (diskette interrupt)
  192.  5    disable IRQ5 (fixed disk interrupt)
  193.  4    disable IRQ4 (serial port 1 interrupt)
  194.  3    disable IRQ3 (serial port 2 interrupt)
  195.  2    disable IRQ2 (video interrupt)
  196.  1    disable IRQ1 (keyboard, mouse, RTC interrupt)
  197.  0    disable IRQ0 (timer interrupt)
  198. SeeAlso: #P011,#P012,#P077
  199.  
  200. Bitfields for PIC output control word OCW2:
  201. Bit(s)    Description    (Table P011)
  202.  7-5    operation
  203.     000 rotate in auto EOI mode (clear)
  204.     001 (WORD_A) nonspecific EOI
  205.     010 (WORD_H) no operation
  206.     011 (WORD_B) specific EOI
  207.     100 (WORD_F) rotate in auto EOI mode (set)
  208.     101 (WORD_C) rotate on nonspecific EOI command
  209.     110 (WORD_E) set priority command
  210.     111 (WORD_D) rotate on specific EOI command
  211.  4    reserved (0)
  212.  3    reserved (0)
  213.  2-0    interrupt request to which the command applies
  214.     (only used by WORD_B, WORD_D, and WORD_E)
  215. SeeAlso: #P010,#P012
  216.  
  217. Bitfields for PIC output control word OCW3:
  218. Bit(s)    Description    (Table P012)
  219.  7    reserved (0)
  220.  6-5    special mask
  221.     0x  no operation
  222.     10  reset special mask
  223.     11  set special mask
  224.  4    reserved (0)
  225.  3    reserved (1)
  226.  2    poll command
  227.  1-0    function
  228.     0x  no operation
  229.     10  read interrupt request register on next read from port 0020
  230.     11  read interrupt in-service register on next read from port 0020
  231. SeeAlso: #P010,#P011
  232. ----------P00220023--------------------------
  233. PORT 0022-0023 - CHIP SET DATA
  234.  
  235. 0022  -W  index for accesses to data port
  236. 0023  RW  chip set data
  237. ----------P00220023--------------------------
  238. PORT 0022-0023 - Cyrix Cx486SLC/DLC PROCESSOR - CACHE CONFIGURATION REGISTERS
  239.  
  240. 0022  -W  index for accesses to next port (see #P013)
  241. 0023  RW  cache configuration register array (indexed by port 0022h)
  242.  
  243. (Table P013)
  244. Values for Cyrix Cx486SLC/DLC Cache Configuration register number:
  245.  C0h    CR0 (see #P015)
  246.  C1h    CR1 (see #P016)
  247.  C4h    non-cacheable region 1, start address bits 31-24
  248.  C5h    non-cacheable region 1, start address bits 23-16
  249.  C6h    non-cacheable region 1, start addr 15-12, size (low nibble) (see #P014)
  250.  C7h    non-cacheable region 2, start address bits 31-24
  251.  C8h    non-cacheable region 2, start address bits 23-16
  252.  C9h    non-cacheable region 2, start addr 15-12, size (low nibble) (see #P014)
  253.  CAh    non-cacheable region 3, start address bits 31-24
  254.  CBh    non-cacheable region 3, start address bits 23-16
  255.  CCh    non-cacheable region 3, start addr 15-12, size (low nibble) (see #P014)
  256.  CDh    non-cacheable region 4, start address bits 31-24
  257.  CEh    non-cacheable region 4, start address bits 23-16
  258.  CFh    non-cacheable region 4, start addr 15-12, size (low nibble) (see #P014)
  259.  
  260. (Table P014)
  261. Values for Cyrix Cx486SLC/DLC non-cacheable region sizes:
  262.  00h    disabled
  263.  01h    4K
  264.  02h    8K
  265.  03h    16K
  266.  04h    32K
  267.  05h    64K
  268.  06h    128K
  269.  07h    256K
  270.  08h    512K
  271.  09h    1M
  272.  0Ah    2M
  273.  0Bh    4M
  274.  0Ch    8M
  275.  0Dh    16M
  276.  0Eh    32M
  277.  0Fh    4G
  278. SeeAlso: #P013
  279.  
  280. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 0:
  281. Bit(s)    Description    (Table P015)
  282.  0    "NC0" first 64K of each 1M noncacheable in real/V86
  283.  1    "NC1" 640K-1M noncacheable
  284.  2    "A20M" enables A20M# input pin
  285.  3    "KEN"  enables KEN# input pin
  286.  4    "FLUSH" enables KEN# input pin
  287.  5    "BARB" enables internal cache flushing on bus holds
  288.  6    "C0" cache direct-mapped instead of 2-way associative
  289.  7    "SUSPEND" enables SUSP# input and SUSPA# output pins
  290. SeeAlso: #P013,#P016
  291.  
  292. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 1:
  293. Bit(s)    Description    (Table P016)
  294.  0    "RPL" enables output pins RPLSET and RPLVAL#
  295. SeeAlso: #P013,#P015
  296. ----------P00220023--------------------------
  297. PORT 0022-0023 - Cyrix 5x86 PROCESSOR - CONFIGURATION CONTROL REGISTERS
  298.  
  299. 0022  -W  index for accesses to next port (see #P017)
  300. 0023  RW  configuration control register array (indexed by port 0022h)
  301.  
  302. (Table P017)
  303. Values for Cyrix 5x86 configuration registers:
  304.  20h    Performance Control (see #P022)
  305.  C0h
  306.  C1h    Configuration Control #1 (CCR1) (see #P018)
  307.  C2h    Configuration Control #2 (CCR2) (see #P019)
  308.  C3h    Configuration Control #3 (CCR3) (see #P020)
  309.  C4h    Configuration Control #4 (CCR4) (see #P021)
  310.  C5h
  311.  C6h 
  312.  C7h
  313.  C8h
  314.  C9h
  315.  CAh
  316.  CBh
  317.  CCh
  318.  CDh    System Memory Management address region #0 (smar0) (see #P023)
  319.  CEh    System Memory Management address region #1 (smar1)
  320.  CFh    System Memory Management address region #2 (smar2)
  321.  F0h    Power Management (see #P024)
  322.  FEh R    Device Identification #0
  323.     CPU device ID
  324.  FFh R    Device Identification #1
  325.     bits 3-0: revision
  326.     bits 7-4: stepping
  327. Note:    accesses to indices other than 20h,C0h-CFh, or F0h-FFh generate
  328.       external I/O cycles 
  329.  
  330. Bitfields for Cyrix 5x86 Configuration Control Register 1 (CCR1):
  331. Bit(s)    Description    (Table P018)
  332.  0    reserved
  333.  1    enable SMM pins
  334.  2    system management memory access
  335.  3    main memory access
  336.  7-4    reserved
  337. SeeAlso: #P019,#P020,#P021
  338.  
  339. Bitfields for Cyrix 5x86 Configuration Control Register 2 (CCR2):
  340. Bit(s)    Description    (Table P019)
  341.  0    reserved
  342.  1    enable write-back cache interface pins
  343.  2    lock NW bit
  344.  3    suspend on HLT instruction
  345.  4    write-through region 1
  346.  5    reserved
  347.  6    enable burst write cycles
  348.  7    enable suspend pins
  349. SeeAlso: #P018,#P020,#P021
  350.  
  351. Bitfields for Cyrix 5x86 Configuration Control Register 3 (CCR3):
  352. Bit(s)    Description    (Table P020)
  353.  0    SMM register lock
  354.  1    NMI enable
  355.  2    linear address burst cycles
  356.  3    SMM mode
  357.  7-4    map enable (0001 to enable several configuration registers)
  358. SeeAlso: #P018,#P019,#P021,#P022,#P024
  359.  
  360. Bitfields for Cyrix 5x86 Configuration Control Register 4 (CCR4):
  361. Bit(s)    Description    (Table P021)
  362.  2-0    I/O recovery time
  363.  3    enable memory-read bypassing
  364.  4    enable directory table entry cache
  365.  6-5    reserved
  366.  7    enable CPUID instruction (stepping 1+ and Cx6x86) 
  367. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  368. SeeAlso: #P018,#P019,#P020
  369.  
  370. Bitfields for Cyrix 5x86 Performance Control register:
  371. Bit(s)    Description    (Table P022)
  372.  0    return stack enabled
  373.  1    branch-target buffer enabled
  374.  2    loop enable
  375.  6-3    reserved (0)
  376.  7    load-store serialization enabled
  377. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  378. SeeAlso: #P024,#P018
  379.  
  380. Bitfields for Cyrix 5x86 SMM Address Region register:
  381. Bit(s)    Description    (Table P023)
  382.  3-0    block size
  383.  23-4    starting address
  384.  
  385. Bitfields for Cyrix 5x86 Power Management register:
  386. Bit(s)    Description    (Table P024)
  387.  1-0    core clock to bus clock ratio
  388.  2    CPU running at half bus speed
  389. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  390. --------X-P00220023--------------------------
  391. PORT 0022-0023 - 82358DT 'Mongoose' EISA CHIPSET - 82359 DRAM CONTROLLER
  392. Notes:    this chip uses a chip ID of 01
  393.     the LIM register herein use a chip ID of 1A
  394.  
  395. 0022  -W  index for accesses to data port (see #P025)
  396. 0023  RW  chip set data
  397.  
  398. (Table P025)
  399. Values for 82359 DRAM controller register index:
  400.  00h    bank 0
  401.     bit 7    unknown
  402.     bit 6-4    000 DRAM in bank 0 (standard)
  403.         001 bank 1
  404.         010 bank 2
  405.         011 bank 3
  406.         100 banks 0,1
  407.         101 banks 2,3
  408.         110 banks 0,1,2,3
  409.         111 empty (standard for 1,2,3)
  410.     bit 3-2    unknown
  411.     bit 1-0    00 64K chips used
  412.         01 256K
  413.         10 1M
  414.         11 4M
  415.  01h    bank 1
  416.  02h    bank 2
  417.  03h    bank 3
  418.  21h    chip ID register
  419. ----------P00220023--------------------------
  420. PORT 0022-0023 - CHIPSET FROM ETEC CHEETAH ET6000 (SINGLE CHIP)
  421.  
  422. 0022  RW  chip set data
  423. 0023  ?W  index for accesses to data port (see #P026)
  424.  
  425. (Table P026)
  426. Values for Etec Cheetah ET6000 chip set register index:
  427.  10h    system configuration register (see #P027)
  428.  11h    cache configuration & non-cacheable block size register (see #P028)
  429.  12h    non-cacheable block address register
  430.     bit 7-1    non-cacheable address, A25-A19
  431.     bit 0    reserved
  432.  13h    DRAM bank & type configuration register (see #P029)
  433.  14h    DRAM configuration register (see #P030)
  434.  15h    shadow RAM configuration register (see #P031)
  435.  
  436. Bitfields for Etec Cheetah ET6000 system configuration register:
  437. Bit(s)    Description    (Table P027)
  438.  7-6    00 turbo/non-turbo
  439.     01 local device supported
  440.     10 suspend mode
  441.     11 illegal
  442.  5    reserved
  443.  4    refresh selection
  444.     0 = AT type refresh
  445.     1 = concurrent refresh
  446.  3    slow refresh  95mSec enabled
  447.  2    fast reset delay
  448.     0 = do not use delay
  449.     1 = wait for 2mSec delay
  450.  1    wait for HALT after KBDRST
  451.  0    RAM at A0000-BFFFF
  452.     0 = AT bus cycle
  453.     1 = local bus cycle
  454. SeeAlso: #P026
  455.  
  456. Bitfields for Etec Cheetah ET6000 cache configuration register:
  457. Bit(s)    Description    (Table P028)
  458.  7-5    000 disabled
  459.     001 512K
  460.     010 1M
  461.     011 2M
  462.     100 4M
  463.     101 8M
  464.     110 16M
  465.     111 32M
  466.  4    DRAM banks
  467.     0 = 2-bank DRAM
  468.     1 = 4-bank DRAM
  469.  3-0    reserved
  470. SeeAlso: #P026
  471.  
  472. Bitfields for Etec Cheetah ET6000 DRAM bank & type configuration register:
  473. Bit(s)    Description    (Table P029)
  474.  7-6    bank 3 DRAM type
  475.     00 none
  476.     01 256K
  477.     10 1M
  478.     11 4M
  479.  5-4    bank 2 DRAM type
  480.  3-2    bank 1 DRAM type
  481.  1-0    bank 0 DRAM type
  482. SeeAlso: #P026
  483.  
  484. Bitfields for Etec Cheetah ET6000 DRAM configuration register:
  485. Bit(s)    Description    (Table P030)
  486.  7    on-board memory range 15M to 16M disabled
  487.  6    on-board memory range 512K-640K disabled
  488.  5    ROM chip select at C0000-DFFFF enabled
  489.  4    RAS to CAS time
  490.     0 = 1 SYSCLCK,    not for R0WS
  491.     1 = 2 SYSCLCK
  492.  3    RAS precharge time
  493.     0 = 1.5 SYSCLCK
  494.     1 = 2.5 SYSCLCK
  495.  2-1    read cycle wait state
  496.     00 = 0 wait state
  497.     01 = 1 ws
  498.     10 = 2 ws
  499.     11 = 3 ws
  500.  0    write cycle wait state
  501.     0 = 0 ws
  502.     1 = 1 ws
  503. SeeAlso: #P026
  504.  
  505. Bitfields for Etec Cheetah ET6000 shadow RAM configuration register:
  506. Bit(s)    Description    (Table P031)
  507.  7    shadow at C0000-FFFFF
  508.     0 = non-cacheable
  509.     1 = cacheable and cache-write-proteced
  510.  6    access ROM/RAM at F0000-FFFFF
  511.     0 = read from ROM, write to RAM
  512.     1 = read from shadow, write is protected
  513.  5    access ROM/RAM at E0000-EFFFF
  514.     0 = access on-board ROM, AT bus cycle
  515.     1 = access shadow E0000-EFFFF enabled
  516.  4    RAM at E0000-EFFFF is read-only
  517.  3    access ROM/RAM at D0000-DFFFF
  518.     0 = access on-board ROM, AT bus cycle
  519.     1 = access shadow D0000-DFFFF enabled
  520.  2    RAM at D0000-DFFFF is read-only
  521.  1    access ROM/RAM at C0000-CFFFF
  522.     0 = access on-board ROM, AT bus cycle
  523.     1 = access shadow C0000-CFFFF enabled
  524.  0    RAM at C0000-CFFFF is read-only
  525. SeeAlso: #P026
  526. ----------P00220023--------------------------
  527. PORT 0022-0023 - Hewlett-Packard Hornet chipset (HP 100LX/200LX)
  528.  
  529. 0022  RW  index for accesses to data port (see Table P189)
  530. 0023  RW  chip set data
  531.  
  532. (Table P032)
  533. Values for HP Hornet chipset register index:
  534.  1Eh    buzzer volume/clock oscillator speed
  535.     bit 7-6: buzzer volume
  536.     bit 5-4: system oscillator speed
  537.         00: 10.738636MHz
  538.         01: 15.836773MHz(HP 100/200LX has oscillator with this speed)
  539.         10: 21.477272MHz
  540.         11: 31.673550MHz
  541.  21h    display timing???
  542.  23h    LCD contrast (see INT15h AH=62h)
  543.     valid values: 00h-1fh (1fh is the darkest)
  544.  51h    power adapter status
  545.     bit 7-1: ???
  546.     bit 0: power adapter status(0=inactive/1=active)
  547.  52h    nicad charge status
  548.     bit 7-3: ???
  549.     bit 2: battery charging status(0=???/1=slow charge)
  550.     bit 1-0: ???
  551.  53h    nicad charge status
  552.     bit 7-1: ???
  553.     bit 0: battery charging status(0=???/1=fast charge)
  554.  80h    memory wait for internal ROM
  555.     valid values: 00h-07h
  556.  81h    memory wait for internal RAM
  557.     valid values: 00h-03h
  558.  82h    memory wait for external RAM
  559.     valid values: 00h-0fh
  560.  87h    battery status???
  561. ----------P00220024--------------------------
  562. PORT 0022-0024 - CHIPSET FROM PICO POWER, UMC or PCChips
  563.  
  564. 0022  ?W  index for accesses to data port
  565. 0024  RW  chip set data
  566. ----------P00220025--------------------------
  567. PORT 0022-0025 - INTEL 82360SL CHIPSET (FOR 386SL)
  568.  
  569. 0022  -W  CPU write mode register
  570. 0023  R-  configuration status register
  571.         bit 7: 82360 configuration is open
  572. 0024  -W  82360 configuration index
  573. 0025  RW  82360 configuration data
  574.  
  575. Bitfields for Intel 82360SL CPU write mode register:
  576. Bit(s)    Description    (Table P033)
  577.  0    unlock configuration space
  578.  1    enable selected unit
  579.  3-2    unit
  580.     00 memory configuration
  581.     01 cache
  582.     10 internal bus
  583.     11 external bus
  584. ----------P0022002B--------------------------
  585. PORT 0022-002B - INTEL 82355, PART OF CHIPSET FOR 386sx
  586. Note:    initialisation in POST will disable these addresses, only a hard
  587.       reset will enable them again.
  588.  
  589. 0022w RW  82335 MCR memory configuration register (if LOCK=0) (see #P034)
  590. 0024w RW  82335 RC1 roll compare register (if LOCK=0) (see #P035)
  591. 0026w RW  82335 RC2 roll compare register (if LOCK=0) (see #P035)
  592. 0028w RW  82335 CC0 address range compare register (if LOCK=0) (see #P036)
  593. 002Aw RW  82335 CC1 address range compare register (if LOCK=0) (see #P036)
  594.  
  595. Bitfields for 82335 MCR memory configuration register:
  596. Bit(s)    Description    (Table P034)
  597.  15-12    reserved
  598.  11    "VRO"    video read only (0=r/w, 1=r/o)
  599.  10    "EN#"
  600.     0=enable video RAM accesses (A0000h-8FFFFh)
  601.     1=disable accesses
  602.  9    "ENADP#"
  603.     0=enable adapter ROM accesses (C0000h-8FFFFh)
  604.     1=disable adapter ROM accesses, shadow enabled
  605.  8    "ROMSIZE" 0=256KB ROM, 1=512KB ROM
  606.  7-6    "INTERL" memory interleaving
  607.     00 = 1 memory bank installed (no interleave)
  608.     01 = 2 memory banks installed
  609.     10 = 3 memory banks installed
  610.     11 = 4 memory banks installed
  611.  5    reserved
  612.  4    "DSIZE"     0=1MBx1DRAMs, 1=256KBx1 or 256KBx4 DRAMs
  613.  3    "S640"     base memory size is 0=512KB, 1=640KB
  614.  2-1    reserved
  615.  0    "ROMEN#" ROM enable
  616.     0 enable BIOS ROM accesses (E0000h-FFFFFh)
  617.     1 disable BIOS ROM accesses, enable shadow
  618. Note:    One of the remaining reserved bits is the LOCK bit, which will be set
  619.       during power on, disabling access to the 82335s registers.
  620.  
  621. Bitfields for 82335 roll compare register:
  622. Bit(s)    Description    (Table P035)
  623.  15-9    selects address range to be remapped (C23-C17)
  624.  8    reserved
  625.  7-1    selects address bits to be included in re-mapping comparision (M23-M17)
  626.  0    "EN" enables roll address mapping
  627.  
  628. Bitfields for 82335 address range compare register:
  629. Bit(s)    Description    (Table P036)
  630.  15-11    specifies top of address range (C23-C19)
  631.  10-8    reserved
  632.  7-3    selects address bits to be included in address range comparision
  633.       (M23-M19)
  634.  2-1    reserved
  635.  0    "EN" enable address range comparision
  636. ----------P00240028--------------------------
  637. PORT 0024-0028 - HEADLAND HTK340 SHASTA 386/486 CHIPSET
  638.  
  639. 0024  Rw  data port
  640. 0028  ?W  index port to chipset registers (see #P037,#P038)
  641.  
  642. (Table P037)
  643. Values for Headland HT321 register index:
  644.  00h R    chip/revision,read-only
  645.       bit7-4: reserved (=0)
  646.       bit3-0: chip revision, 0=A, 1=B, 3=D
  647.  01h RW system clocking (default=00h)
  648.       bit7-4: reserved (=0)
  649.       bit3-0: ISA speed set
  650.  02h RW system parameters (default=00h) (see #P039)
  651.  04h RW co-processor (default=00h)
  652.       bit7-3: reserved (=0)
  653.       bit2=1: soft-NPU reset blocked (386 only)
  654.       bit1=1: weitek installed
  655.       bit0=1: 387 installed
  656.  06h RW DMA (default=00h) (see #P040)
  657.  07h RW EPROM (default=00h) (see #P041)
  658.  08h RW I/O and memory map holes (default=00h)
  659.       bit7-4: reserved (=0)
  660.       bit3    : 0/1 I/O map hole-A
  661.       bit2    : reserved (=0)
  662.       bit1    : 0/1 memory map hole-B
  663.       bit0    : reserved (=0)
  664.  10h RW hole-A low address (default=00h)
  665.  11h RW hole-A high address (default=00h)
  666.  19h RW mem hole-B start address, lower (default=00h)
  667.  1Ah RW mem hole-B start address, higher (default=00h)
  668.       bit7-6: reserved (=0)
  669.       bit5-0: address of mem hole-B start
  670.  1Ch RW mem hole-B end address, lower (default=00h)
  671.  1Dh RW mem hole-B end address, higher (default=00h)
  672.       bit7-6: reserved (=0)
  673.       bit5-0: address of mem hole-B end
  674. SeeAlso: #P038
  675.  
  676. (Table P038)
  677. Values for Headland HT342 register index:
  678.  20h R    identifier port read
  679.       bit7-4: DRAM controller identifier (0010b)
  680.       bit3-0: revision number (0=A)
  681.  21h R    feature port read    (default=00h)
  682.  24h RW DRAM options port #1 (default=00h)
  683.       bit7    : 0/1 staggered refresh
  684.       bit6    : refresh type
  685.       bit5    : 0/1 DRAM paging
  686.       bit4-2: CAS interleave
  687.       bit1-0: banks
  688.  25h    DRAM options port #2 (default=00h)
  689.       bit7-6: DRAM bank 1 type
  690.       bit5-4: DRAM bank 2 type
  691.       bit3-2: DRAM bank 1?? type
  692.       bit1-0: DRAM bank 0 type
  693.  26h RW DRAM options port #3 (default=FFh) (see #P042)
  694.  27h RW DRAM options port #4 (default=FFh) (see #P043)
  695.  28h RW data transfer control port (default=00h)
  696.     doubled indexed registers (28h-2Ah)
  697.       bit7    : initiate transfer
  698.       bit6    : read/write transfer
  699.       bit5-4: reserved
  700.       bit3-0: transfer/destination
  701.  29h RW RAM address register (default=00h)
  702.     doubled indexed registers (28h-2Ah)
  703.       bit7-5: reserved
  704.       bit4-0: RAM address registers contents
  705.  2Ah RW data transfer port   (default=00h)
  706.     doubled indexed registers (28h-2Ah)
  707.       bit7-6: reserved
  708.       bit5    : EMS translation
  709.       bit4    : reserved
  710.       bit3    : 0/1 cacheing
  711.       bit2    : 0/1 write
  712.       bit1    : 0/1 read
  713.       bit0    : 0/1 shadow
  714.  2Bh RW other options          (default=00h) (see #P044)
  715.  2Dh RW DRAM options port #5 (default=03h)
  716.       bit7-5: reserved
  717.       bit4    : 0/1 10µs RAS timeout
  718.       bit3-2: BUS speed
  719.       bit1-0: BUS recovery for DRAM cycles
  720.            00b=0: 4-1-1-1    10b=0.5
  721.            01b=1: 4-2-2-2    11b=1??
  722.  82h    read transfer
  723.  C2h    write transfer
  724. SeeAlso: #P037
  725.  
  726. Bitfields for Headland HT321 register 02h (system parameters):
  727. Bit(s)    Description    (Table P039)
  728.  7-6    IO recovery time (rev. D+)
  729.  5    parity override
  730.  4-3    cycle-width
  731.  2    0/1 port 92 functionality
  732.  1    IO decode
  733.  0    0/1 posted backplane MEMWN cycles
  734. SeeAlso: #P037
  735.  
  736. Bitfields for Headland HT321 register 06h (DMA control):
  737. Bit(s)    Description    (Table P040)
  738.  7    reserved (=0)
  739.  6    1/0 IOCHRDY during master cycle (rev. C+)
  740.  5    0/1 fast sample DMA
  741.  4-3    DMA waitstate 00b=3 .. 11b=0
  742.  2    0/1 DMA flow-through mode
  743.  1    0/1 extended DMA page register
  744.  0    DMA clock
  745. SeeAlso: #P037 
  746.  
  747. Bitfields for Headland HT321 register 07h (EPROM control):
  748. Bit(s)    Description    (Table P041)
  749.  7-6    reserved (=0)
  750.  5    0/1 EADS CACHE invalidation for EPROM writes (rev. D+)
  751.  4    0/1 ROMEN for EPROM writes (rev. C+)
  752.  3    0/1 middle BIOS region of 64KB space below 16MB
  753.  2    ROM-size (0=64KB, 1=128KB)
  754.  1    V-BIOS-add (0=separate, 1=same device)
  755.  0    ROM-access time (0=250ns, 1=125ns)
  756. SeeAlso: #P037
  757.  
  758. Bitfields for Headland HT342 register 26h (DRAM CAS control):
  759. Bit(s)    Description    (Table P042)
  760.  7    CAS hold on RAS (CAS before RAS refresh)
  761.  6    CAS precharge
  762.  5    CAS burst delay
  763.  4    CAS delay (writes)
  764.  3    CAS delay (reads)
  765.  2    CAS active time (writes)
  766.  1-0    CAS active time (reads)
  767. SeeAlso: #P038,#P043
  768.  
  769. Bitfields for Headland HT342 register 27h (DRAM RAS control):
  770. Bit(s)    Description    (Table P043)
  771.  7    RAS delay
  772.  6-5    RAS active (writes)
  773.  4-2    RAS active (reads)
  774.  1-0    RAS precharge
  775. SeeAlso: #P038,#P042
  776.  
  777. Bitfields for Headland HT342 register 2Bh (other options):
  778. Bit(s)    Description    (Table P044)
  779.  7    reserved
  780.  6    0/1 middle BIOS
  781.  5    0/1 data pipeline
  782.  4    0/1 data pipeline
  783.  3    IO-decode
  784.  2    reserved
  785.  1    16bit DMA bridge
  786.  0    0/1 write buffering
  787. SeeAlso: #P038
  788. ----------P00260027--------------------------
  789. PORT 0026-0027 - POWER MANAGEMENT
  790.  
  791. 0026  -W  index for data port
  792. 0027  RW  power management data
  793. ----------P002E002F--------------------------
  794. PORT 002E-002F - DELL ENHANCED PARALLEL PORT
  795. SeeAlso: PORT 015Ch,PORT 026Eh,PORT 0398h
  796.  
  797. 002E  -W  index for data port (see #P045)
  798. 002F  RW  EPP command data
  799.  
  800. (Table P045)
  801. Values for Dell Enhanced Parallel Port register index:
  802.  00h    bit 0: ???
  803.  02h    bit 7: port in bidirectional mode
  804.  04h    bits 0 and 2: ECP/EPP mode control
  805. ----------P002E002F--------------------------
  806. PORT 002E-002F - Intel "Nonolet" Motherboard - POWER MANAGEMENT
  807.  
  808. 002E  ?W  index for data port
  809. 002F  ?W  data port
  810.  
  811. code sequence posted in fido7.nice.sources by Konstantin Mohorea:
  812.      out 2Eh,0Ch
  813.      out 2Fh,75h
  814.      out 2Eh,11h
  815.      out 2Fh,00h
  816.      out 2Eh,0Dh
  817.      out 2Fh,A0h
  818. ----------P0038003F--------------------------
  819. PORT 0038-003F - PC radio by CoZet Info Systems
  820. Notes:    The I/O address range is dipswitch selectable from:
  821.        038-03F and 0B0-0BF
  822.        078-07F and 0F0-0FF
  823.        138-13F and 1B0-1BF
  824.        178-17F and 1F0-1FF
  825.        238-23F and 2B0-2BF
  826.        278-27F and 2F0-2FF
  827.        338-33F and 3B0-3BF
  828.        378-37F and 3F0-3FF
  829.     All of these addresses show a readout of FF in initial state.
  830.     Once started, all of the addresses show     FB, whatever might happen.
  831. ----------P0040005F--------------------------
  832. PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254)
  833. Note:    XT & AT use ports 40h-43h; PS/2 uses ports 40h, 42h-44h, and 47h
  834.  
  835. 0040  RW  PIT  counter 0, counter divisor          (XT, AT, PS/2)
  836. 0041  RW  PIT  counter 1, RAM refresh counter    (XT, AT)
  837.             don't set below 3 on PCs (default 12h)
  838. 0042  RW  PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  839.     During normal operation mode (8253) 40h-42h set the counter values on
  840.     write and get the current counter value on read. In 16bit modes two
  841.     consequtive writes/reads must be issued, first with the low byte,
  842.     followed by the high byte. In 8254 read back modes, all selected
  843.     counters and status are latched and must be read out completely
  844.     before normal operation is valid again.     Each counter switches back
  845.     to normal operation after read out.  In 'get status and counter'
  846.     mode the first byte read is the status, followed by one or two
  847.     counter values. (see #P046)
  848. 0043  RW  PIT  mode port, control word register for counters 0-2 (see #P047)
  849.     Once a control word has been written (43h), it must be followed
  850.     immediately by performing the corresponding action to the counter
  851.     registers (40h-42h), else the system may hang!!
  852. 0044  RW  PIT  counter 3 (PS/2, EISA)
  853.         used as fail-safe timer. generates an NMI on time out.
  854.         for user generated NMI see at 0462.
  855. 0047  -W  PIT  control word register counter 3 (PS/2, EISA)
  856.     bit 7-6 = 00  counter 3 select
  857.         = 01  reserved
  858.         = 10  reserved
  859.         = 11  reserved
  860.     bit 5-4 = 00  counter latch command counter 3
  861.         = 01  read/write counter bits 0-7 only
  862.         = 1x  reserved
  863.     bit 3-0 = 00
  864. 0048  ??  EISA
  865. 0049  ??  8254 timer 2, not used (counter 1)
  866. 004A  ??  EISA programmable interval timer 2
  867. 004B  ??  EISA programmable interval timer 2
  868.  
  869. Bitfields for 8254 PIT counter status byte:
  870. Bit(s)    Description    (Table P046)
  871.  7    PIN status of OUTx Pins (1=high, 0=low)
  872.  6    counter start value loaded
  873.     =0: yes, so counter latch is valid to be read
  874.     =1: no, wait for counter latch to be set (may last a while)
  875. 5-0    counter mode, same as bit5-0 at 43h
  876. SeeAlso: #P047
  877.  
  878. Bitfields for 8253/8254 PIT mode control word:
  879. Bit(s)    Description    (Table P047)
  880.  7-6    counter select
  881.     00  counter 0 select
  882.     01  counter 1 select      (not PS/2)
  883.     10  counter 2 select
  884.     11  (8253) reserved
  885.         (8254) read back counter (see #P046)
  886. ---if counter select---
  887.  5-4    counter access
  888.     00  counter latch command
  889.         BUG:    Intel Neptune/Mercury Chipset 8237IB (SIO) needs a
  890.               short delay after issueing this command, else the
  891.               MSB may be outdated concerning the LSB, resulting
  892.               in large measuring errors.
  893.             Workaround: Check for this condition by comparing
  894.               results with last results and don't use errornous
  895.               results.
  896.     01  read/write counter bits 0-7 only
  897.     10  read/write counter bits 8-15 only
  898.     11  read/write counter bits 0-7 first, then 8-15
  899.  3-1    counter mode
  900.     000 mode 0 select - zero detection interrupt
  901.     001 mode 1 select - programmable one shot
  902.     x10 mode 2 select - rate generator
  903.     x11 mode 3 select - square wave generator
  904.         divisor factor 3 not allowed!
  905.     100 mode 4 select - software triggered strobe
  906.     101 mode 5 select - hardware triggered strobe
  907.  0    counting style
  908.     0  binary counter 16 bits
  909.     1  BCD counter (4 decades)
  910. ---if read back---
  911.  5-4    what to read
  912.     00 reserved
  913.     01 counter status
  914.     10 counter value
  915.     11 counter status and value
  916.  3    select counter 2
  917.  2    select counter 1
  918.  1    select counter 0
  919.  0    reserved (0)
  920. Note:    after issuing a read back 'get status' command, any new read back
  921.       command is ignored until the status is read from all selected
  922.       counters.
  923. ----------P0060006F--------------------------
  924. PORT 0060-006F - KEYBOARD CONTROLLER 804x (8041, 8042) (or PPI (8255) on PC,XT)
  925. Note:    XT uses ports 60h-63h, AT uses ports 60h-64h
  926.  
  927. 0060  RW  KB controller data port or keyboard input buffer (ISA, EISA)
  928.         should only be read from after status port bit0 = 1
  929.         should only be written to if status port bit1 = 0
  930. 0060  R-  KeyBoard or KB controller data output buffer (via PPI on XT)
  931.         PC: input from port A of 8255, if bit7 in 61h set (see #P063)
  932.         get scancodes, special codes (in PC: with bit7 in 61h cleared)
  933.           (see #P057)
  934.  
  935. 0061  R-  KB controller port B control register (ISA, EISA)
  936.         system control port for compatibility with 8255 (see #P060)
  937. 0061  -W  KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  938.         system control port for compatibility with 8255 (see #P059)
  939. 0061  -W  PPI Programmable Peripheral Interface 8255 (XT only)
  940.         system control port (see #P061)
  941. 0062  RW  PPI (XT only) data port C (see #P062)
  942. 0063  RW  PPI (XT only) command mode register (see #P064)
  943.  
  944. 0064  R-  keyboard controller read status (see #P065,#P066,#P067)
  945. 0064  -W  keyboard controller input buffer (ISA, EISA) (see #P068)
  946.  
  947. 0064  -W  (Amstrad/Schneider PC1512) set 'DIP switch S1' setting
  948.       stored in CMOS RAM that PPI should report for compatibility
  949. 0065  -W  (Amstrad/Schneider PC1512) set 'DIP switch S2' RAM size setting
  950.       stored in CMOS RAM, that PPI port C (PORT 0064h) should report for
  951.       compatibility
  952.  
  953. 0065  R-  communications port (Olivetti M24)
  954.  
  955. 0068  -W  (HP-Vectra) control buffer (HP commands) (see #P069)
  956. 0069  R-  (HP-Vectra) SVC (keyboard request SerViCe port)
  957. 006A  -W  (HP-Vectra) Acknowledge (clear processing, done)
  958. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  959.  
  960. Bitfields for AT keyboard controller input port:
  961. Bit(s)    Description    (Table P048)
  962.  7    keyboard enabled
  963.  6    =0  CGA, else MDA
  964.  5    =0  manufacturing jumper installed
  965.  4    =0  system RAM 512K, else 640K
  966.  3-0    reserved
  967. SeeAlso: #P049,#P051
  968.  
  969. Bitfields for AT keyboard controller input port (Compaq):
  970. Bit(s)    Description    (Table P049)
  971.  7    security lock is unlocked
  972.  6    =0  Compaq dual-scan display, 1=non-Compaq display
  973.  5    system board dip switch 5 is OFF
  974.  4    =0  auto speed selected, 1=high speed selected
  975.  3    =0  slow (4MHz), 1 = fast (8MHz)
  976.  2    no math coprocessor installed
  977.  1-0    reserved
  978. SeeAlso: #P050
  979.  
  980. Bitfields for AT keyboard controller output port:
  981. Bit(s)    Description    (Table P050)
  982.  7    keyboard data output
  983.  6    keyboard clock output
  984.  5    input buffer NOT full
  985.  4    output buffer NOT empty
  986.  3    reserved (see note)
  987.  2    reserved (see note)
  988.  1    gate A20
  989.  0    system reset
  990. Note:    bits 2 and 3 are the turbo speed switch or password lock on
  991.       Award/AMI/Phoenix BIOSes.  These bits make use of nonstandard
  992.       keyboard controller BIOS functionality to manipulate
  993.         pin 23 (8041 port 22) as turbo switch for AWARD
  994.         pin 35 (8041 port 15) as turbo switch/pw lock for Phoenix
  995. SeeAlso: #P048,#P051
  996.  
  997. Bitfields for HP Vectra keyboard controller output port:
  998. Bit(s)    Description    (Table P051)
  999.  7-5    reserved
  1000.  4    output buffer full (OBF) interrupt
  1001.  3    HP SVC interrupt
  1002.  2    HP-HIL controller AutoPoll
  1003.  1    A20 gate
  1004.  0    system reset
  1005. SeeAlso: #P050,#P052
  1006.  
  1007. Bitfields for HP Vectra command byte:
  1008. Bit(s)    Description    (Table P052)
  1009.  7    reserved (0)
  1010.  6    scancode conversion mode (1 = PC/XT, 0 = PC/AT)
  1011.  5    unused
  1012.  4    disable keyboard (unless bit 3 set)
  1013.  3    override keyboard disable
  1014.  2    System Flag (may be read from port 0060h)
  1015.  1    reserved
  1016.  0    OBF interrupt enable
  1017. SeeAlso: #P051
  1018.  
  1019. (Table P053)
  1020. Values for keyboard commands (data also goes to PORT 0060h):
  1021. Value    Count    Description
  1022.  EDh    double    set/reset mode indicators Caps Num Scrl
  1023.         bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
  1024.         all other bits must be zero.
  1025.  EEh    sngl    diagnostic echo. returns EEh.
  1026.  EFh    sngl    NOP (No OPeration). reserved for future use
  1027.  EF+26h    double    [Cherry MF2 G80-1501HAD] read 256 bytes of chipcard data
  1028.         keyboard must be disabled before this and has to
  1029.         be enabled after finished.
  1030.  F0h    double    get/set scan code set
  1031.         00h get current set
  1032.         01h scancode set 1 (PCs and PS/2 mod 30, except Type 2 ctrlr)
  1033.         02h scancode set 2 (ATs, PS/2, default)
  1034.         03h scancode set 3
  1035.  F2h    sngl    read keyboard ID (read two ID bytes)
  1036.         AT keyboards returns FA (ACK)
  1037.         MF2 returns AB 41 (translation) or
  1038.                 AB 83 (pass through)
  1039.  F3h    double    set typematic rate/delay
  1040.         format of the second byte:
  1041.         bit7=0 : reserved
  1042.         bit6-5 : typemativ delay
  1043.              00b=250ms     10b= 750ms
  1044.              01b=500ms     11b=1000ms
  1045.         bit4-0 : typematic rate (see #P058)
  1046.  F4h    sngl    enable keyboard
  1047.  F5h    sngl    disable keyboard. set default parameters (no keyboard scanning)
  1048.  F6h    sngl    set default parameters
  1049.  F7h    sngl    [MCA] set all keys to typematic (scancode set 3)
  1050.  F8h    sngl    [MCA] set all keys to make/release
  1051.  F9h    sngl    [MCA] set all keys to make only
  1052.  FAh    sngl    [MCA] set all keys to typematic/make/release
  1053.  FBh    sngl    [MCA] set al keys to typematic
  1054.  FCh    double    [MCA] set specific key to make/release
  1055.  FDh    double    [MCA] set specific key to make only
  1056.  FEh    sngl    resend last scancode
  1057.  FFh    sngl    perform internal power-on reset function
  1058. Note:    each command is acknowledged by FAh (ACK), if not mentioned otherwise.
  1059.       See PORT 0060h-R for details.
  1060. SeeAlso: #P054
  1061.  
  1062. (Table P054)
  1063. Values for Mouse functions (for PS/2-like pointing devices):
  1064. Value    Count    Description
  1065.  E6h    sngl    set mouse scaling to 1:1
  1066.  E7h    sngl    set mouse scaling to 2:1
  1067.  E8h    double    set mouse resolution
  1068.         (00h=1/mm, 01h=2/mm, 02h=4/mm, 03h=8/mm)
  1069.  E9h    sngl    get mouse information
  1070.         read two status bytes:
  1071.           byte 0: flags (see #P055)
  1072.           byte 1: resolution
  1073.  EAh    sngl    set mouse to stream mode (mouse sends data on any changes)
  1074.  EBh    sngl    get mouse data (from mouse to controller) (see #P056)
  1075.         on reading, each data packet consists of 8 bytes:
  1076.  ECh    sngl    reset mouse wrap mode (to normal mode)
  1077.  EEh    sngl    set wrap mode
  1078.  F0h    sngl    set remote mode (instead of stream mode), mouse sends data
  1079.           only on issueing command EBh.
  1080.  F2h    sngl    read mouse ID (read one, two?? ID bytes)
  1081.         00h=mouse
  1082.  F3h    double    set mouse sample rate in reports per second
  1083.         0Ah=10/s       50h= 80/s
  1084.         14h=20/s       64h=100/s
  1085.         28h=40/s       C8h=200/s
  1086.         3Ch=60/s
  1087.  F4h    sngl    enable mouse (in stream mode)
  1088.  F5h    sngl    disable mouse (in steam mode), set default parameters
  1089.  F6h    sngl    reset to defaults: 100/s, scaling 1:1, stream-mode, 4/mm,
  1090.           disabled
  1091.  FEh    sngl    resend last mouse data (8 bytes, see EBh)
  1092.  FFh    sngl    reset mouse
  1093. Notes:     must issue command D4h to port 64h first to access mouse functions
  1094.      all commands except ECh and FFh are acknowledged by FAh (ACK) or
  1095.        FEh (Resend); get mouse ID (F2h) returns mouse ID.
  1096. SeeAlso: #P053
  1097.  
  1098. Bitfields for mouse status byte 0:
  1099. Bit(s)    Description    (Table P055)
  1100.  7    unused
  1101.  6    remote rather than stream mode
  1102.  5    mouse enabled
  1103.  4    scaling set to 2:1
  1104.  3    unused
  1105.  2    left button pressed
  1106.  1    unused
  1107.  0    right button pressed
  1108. SeeAlso: #P054,#P056
  1109.  
  1110. Format of mouse data packet:
  1111. Offset    Size    Description    (Table P056)
  1112.  00h    BYTE    status
  1113.         bit7    : y-data overrun
  1114.         bit6    : x-data overrun
  1115.         bit5    : y-data negative
  1116.         bit4    : x-data negative
  1117.         bit3-2=0: reserved
  1118.         bit1    : right button pressed
  1119.         bit0    : left button pressed
  1120.  01h    BYTE    reserved
  1121.  02h    BYTE    x-data
  1122.  03h    BYTE    reserved
  1123.  04h    BYTE    y-data
  1124.  05h    BYTE    reserved
  1125.  06h    BYTE    z-data (0)
  1126.  07h    BYTE    reserved
  1127. SeeAlso: #P054,#P055
  1128.  
  1129. (Table P057)
  1130. Values for keyboard special codes:
  1131.  00h    (MF2 in codeset2&3 or AT keyboards) keydetection/overrun error
  1132.  00h    (mouse) ID
  1133.  AAh    BAT completion code (sent after errorfree Basic Assurance Test)
  1134.  ABh    first byte of general MF2 keyboard ID
  1135.  EEh    Echo command return
  1136.  FAh    Acknowledge (all general commands except Resend and Echo)
  1137.  FAh    (mouse) Acknowledge (all commands except commands ECh,F2h,FFh)
  1138.  FCh    (MF2) BAT Failure Code (error in second half of the power on self test)
  1139.  FDh    (AT-keyboard) BAT Failure Code (error in the second half of the
  1140.       power-on self test)
  1141.  FEh    Resend: CPU to controller should resend last keyboard-command
  1142.  FEh    (mouse) CPU to controller should resend last mouse-command
  1143.  FFh    (MF2 in codeset1) keydetection/overrun error
  1144. Note:    keyboard stops scanning and waits for next command after returning
  1145.       code FCh or FDh
  1146. SeeAlso: PORT 0060h-R
  1147.  
  1148. (Table P058)
  1149. Values for keyboard typematic rate:
  1150.  00000b=30.0   10000b=7.5
  1151.  00001b=26.7   10001b=6.7
  1152.  00010b=24.0   10010b=6.0
  1153.  00011b=21.8   10011b=5.5
  1154.  00100b=20.0   10100b=5.0
  1155.  00101b=18.5   10101b=4.6
  1156.  00110b=17.1   10110b=4.3
  1157.  00111b=16.0   10111b=4.0
  1158.  01000b=15.0   11000b=3.7
  1159.  01001b=13.3   11001b=3.3
  1160.  01010b=12.0   11010b=3.0
  1161.  01011b=10.9   11011b=2.7
  1162.  01100b=10.0   11100b=2.5
  1163.  01101b= 9.2   11101b=2.3
  1164.  01110b= 8.5   11110b=2.1
  1165.  01111b= 8.0   11111b=2.0
  1166. SeeAlso: #P053
  1167.  
  1168. Bitfields for KB controller port B (system control port) [output]:
  1169. Bit(s)    Description    (Table P059)
  1170.  7    pulse to 1 for IRQ1 reset (PC,XT)
  1171.  6-4    reserved
  1172.  3    I/O channel parity check disable
  1173.  2    RAM parity check disable
  1174.  1    speaker data enable
  1175.  0    timer 2 gate to speaker enable
  1176. SeeAlso: PORT 0061h-W,#P060
  1177.  
  1178. Bitfields for KB controller port B control register (system control port) [input]:
  1179. Bit(s)    Description    (Table P060)
  1180.  7    RAM parity error occurred
  1181.  6    I/O channel parity error occurred
  1182.  5    mirrors timer 2 output condition
  1183.  4    toggles with each refresh request
  1184.  3    NMI I/O channel check status
  1185.  2    NMI parity check status
  1186.  1    speaker data status
  1187.  0    timer 2 clock gate to speaker status
  1188. SeeAlso: PORT 0061h-R,#P059
  1189.  
  1190. Bitfields for Progr. Peripheral Interface (8255) system control port [output]:
  1191. Bit(s)    Description    (Table P061)
  1192.  7    clear keyboard (only pulse, normally kept at 0)
  1193.  6    =0  hold keyboard clock low
  1194.  5    NMI I/O parity check disable
  1195.  4    NMI RAM parity check disable
  1196.  3    =0 read low nybble of switches S2
  1197.     =1 read high nybble of switches S2
  1198.  2    reserved, often used as turbo switch
  1199.     original PC: cassette motor off
  1200.  1    speaker data enable
  1201.  0    timer 2 gate to speaker enable
  1202. Note:    bits 2 and 3 are sometimes used as turbo switch
  1203. SeeAlso: PORT 0061h-W,#P0051,#P062,#P063,#P064
  1204.  
  1205. Bitfields for PPI (XT only) data port C:
  1206. Bit(s)    Description    (Table P062)
  1207.  7    RAM parity error occurred
  1208.  6    I/O channel parity error occurred
  1209.  5    timer 2 channel out
  1210.  4    reserved 
  1211.     original PC: cassette data input
  1212. ---
  1213.  3    system board RAM size type 1
  1214.  2    system board RAM size type 2
  1215.  1    coprocessor installed
  1216.  0    loop in POST
  1217. ---
  1218.  3-0    DIL switch S2 high/low nybble (depending on PORT 0061h bit 3)
  1219. SeeAlso: PORT 0062h-RW,#P061,#P063,#P064
  1220.  
  1221. Bitfields for PPI (PC,XT only) equipment switches [input]:
  1222. Bit(s)    Description    (Table P063)
  1223.  7-6    number of disk drives
  1224.     00  1 diskette drive
  1225.     01  2 diskette drives
  1226.     10  3 diskette drives
  1227.     11  4 diskette drives
  1228.  5-4    initial video
  1229.     00  reserved (video adapter has on-board BIOS)
  1230.     01  40*25 color (mono mode)
  1231.     10  80*25 color (mono mode)
  1232.     11  MDA 80*25
  1233.  3-2    memory size (using 256K chips)
  1234.     00  256K
  1235.     01  512K
  1236.     10  576K
  1237.     11  640K
  1238.  3-2    memory size (using 64K chips)
  1239.     00  64K
  1240.     01  128K
  1241.     10  192K
  1242.     11  256K
  1243.  3-2    memory size (original PC)
  1244.     00  16K
  1245.     01  32K
  1246.     10  48K
  1247.     11  64K
  1248.  1-0    reserved
  1249.  1    NPU (math coprocessor) present
  1250.  0    boot from floppy
  1251. SeeAlso: #P062,#P064,PORT 0060h-R
  1252.  
  1253. Bitfields for PPI (8255) command mode register:
  1254. Bit(s)    Description    (Table P064)
  1255.  7    activation function (0 = bit set/reset, 1 = mode set function)
  1256.  6,5    port A mode: 00 = mode0, 01 = mode1, 1x = mode2
  1257.  4    port A direction: 0 = output, 1 = input
  1258.  3    port C bits 7-4 direction: 0 = output, 1 = input
  1259.  2    port B mode: 0 = mode0, 1 = mode1
  1260.  1    port B direction: 0 = output, 1 = input
  1261.  0    port C bits 3-0 direction: 0 = output, 1 = input
  1262. Note:    Attention: Never write anything other than 99h to this port
  1263.       (better: never write anything to this port, only during BIOS
  1264.       init), as other values may connect multiple output drivers
  1265.       and will cause hardware damage in PC/XTs!  By setting command
  1266.       word to 99h, PPI will be set in input/output modes as it is
  1267.       necessary to support the commonly known IO-ports 60, 61, 62
  1268.       as desired.
  1269. SeeAlso: #P061,#P062,#P063
  1270.  
  1271. Bitfields for keyboard controller read status (ISA, EISA):
  1272. Bit(s)    Description    (Table P065)
  1273.  7    parity error on transmission from keyboard
  1274.  6    receive timeout
  1275.  5    transmit timeout
  1276.  4    keyboard interface inhibited by keyboard lock
  1277.  3    =1 data written to input register is command (PORT 0064h)
  1278.     =0 data written to input register is data (PORT 0060h)
  1279.  2    system flag status: 0=power up or reset     1=selftest OK
  1280.  1    input buffer full (input 60/64 has data for 8042)
  1281.     no write access allowed until bit clears
  1282.  0    output buffer full (output 60 has data for system)
  1283.     bit is cleared after read access
  1284. SeeAlso: PORT 0064h-R,#P066,#P067,#P068
  1285.  
  1286. Bitfields for keyboard controller read status (MCA):
  1287. Bit(s)    Description    (Table P066)
  1288.  7    parity error on transmission from keyboard
  1289.  6    general timeout
  1290.  5    mouse output buffer full
  1291.  4    keyboard interface inhibited by keyboard lock
  1292.  3    =1 data written to input register is command (PORT 0064h)
  1293.     =0 data written to input register is data (PORT 0060h)
  1294.  2    system flag status: 0=power up or reset     1=selftest OK
  1295.  1    input buffer full (60/64 has data for 804x)
  1296.     no write access allowed until bit clears
  1297.  0    output buffer full (output 60 has data for system)
  1298.     bit is cleared after read access
  1299. SeeAlso: #P065,#P067,#P068
  1300.  
  1301. Bitfields for keyboard controller read status (Compaq):
  1302. Bit(s)    Description    (Table P067)
  1303.  7    parity error detected (11-bit format only). If an
  1304.       error is detected, a Resend command is sent to the
  1305.       keyboard once only, as an attempt to recover.
  1306.  6    receive timeout. transmission didn't finish in 2mS.
  1307.  5    transmission timeout error
  1308.     bit 5,6,7  cause
  1309.         1 0 0  No clock
  1310.         1 1 0  Clock OK, no response
  1311.         1 0 1  Clock OK, parity error
  1312.  4    =0 security lock engaged
  1313.  3    =1 data in OUTPUT register is command
  1314.     =0 data in OUTPUT register is data
  1315.  2    system flag status: 0=power up or reset     1=soft reset
  1316.  1    input buffer full (60/64 has data for 804x)
  1317.     no write access allowed until bit clears
  1318.  0    output buffer full (port 60 has data for system)
  1319.     bit is cleared after read access
  1320. SeeAlso: #P065,#P066,#P068
  1321.  
  1322. (Table P068)
  1323. Values for keyboard controller commands (data goes to port 0060)::
  1324. Value        Description
  1325.  20h    read    read byte zero of internal RAM, this is the last KB command
  1326.           sent to the 8041/8042
  1327.     Compaq    put current command byte on port 0060 (see #P070,#P071)
  1328.  21-3F    read    reads the byte specified in the lower 5 bits of the command
  1329.           in the 804x's internal RAM
  1330.  60-7F    double    writes the data byte to the address specified in the 5 lower
  1331.           bits of the command
  1332.  60h    Compaq    Load new command (60 to [64], command to [60]) (see #P071)
  1333.         (also general AT-class machines)
  1334.  A0h    AMI    get ASCIZ copyright message on port 0060
  1335.  A1h    AMI    get controller version byte on port 0060
  1336.  A1h    Compaq    unknown speedfunction ??
  1337.  A2h    Compaq    unknown speedfunction ??
  1338.  A2h    AMI    set keyboard controller pins 22 and 23 low
  1339.  A3h    Compaq    Enable system speed control
  1340.  A3h    AMI    set keyboard controller pins 22 and 23 high
  1341.  A4h    MCA    check if password installed
  1342.  A4h    Compaq    Toggle speed
  1343.  A4h    AMI    set internal system speed flag to low
  1344.  A5h    MCA    load password
  1345.  A5h    AMI    set internal system speed flag to high
  1346.  A5h    Compaq    Special read. the 8042 places the real values of port 2
  1347.           except for bits 4 and 5 wich are given a new definition in
  1348.           the output buffer. No output buffer full is generated.
  1349.             if bit 5 = 0, a 9-bit keyboard is in use
  1350.             if bit 5 = 1, an 11-bit keyboard is in use
  1351.             if bit 4 = 0, output-buff-full interrupt disabled
  1352.             if bit 4 = 1, output-buffer-full interrupt enabled
  1353.  A6h    MCA    check password
  1354.  A6h    AMI    get internal system speed flag on port 0060
  1355.  A6h    Compaq    unknown speedfunction ??
  1356.  A7h    MCA    disable mouse port
  1357.  A7h    AMI    set internal flag indicating bad write cache
  1358.  A8h    MCA    enable mouse port
  1359.  A8h    AMI    set internal flag indicating good write cache
  1360.  A9h    MCA    test mouse port
  1361.  A9h    AMI    get internal flag indicating cache OK to 0060
  1362.  AAh    sngl    initiate self-test. will return 55h to data port if self-test
  1363.           successful, FCh if failed
  1364.  AAh    Compaq    initializes ports 1 and 2, disables the keyboard and clears
  1365.           the buffer pointers. It then places 55h in the output buffer.
  1366.  ABh    sngl    initiate interface test. result values:
  1367.         00h no error
  1368.         01h keyboard clock line stuck low
  1369.         02h keyboard clock line stuck high
  1370.         03h keyboard data line is stuck low
  1371.         04h keyboard data line stuck high
  1372.         05h (Compaq only) diagnostic feature
  1373.  ACh    read    diagnostic dump. the contents of the 804x RAM, output port,
  1374.           input port, status word are sent.
  1375.  ADh    sngl    disable keyboard (sets bit 4 of commmand byte)
  1376.  ADh    Vectra    HP Vectra diagnostic dump
  1377.  AEh    sngl    enable keyboard     (resets bit 4 of commmand byte)
  1378.  AFh    AWARD    Enhanced Command: read keyboard version
  1379.  B1h    AMI    set keyboard controller P11 line low
  1380.  B2h    AMI    set keyboard controller P12 line low
  1381.  B3h    AMI    set keyboard controller P13 line low
  1382.  B4h    AMI    set keyboard controller P22 line low
  1383.  B5h    AMI    set keyboard controller P23 line low
  1384.  B8h    AMI    set keyboard controller P10 line high
  1385.  B9h    AMI    set keyboard controller P11 line high
  1386.  BAh    AMI    set keyboard controller P12 line high
  1387.  BBh    AMI    set keyboard controller P13 line high
  1388.  BCh    AMI    set keyboard controller P22 line high
  1389.  BDh    AMI    set keyboard controller P23 line high
  1390.  C0h    read    read input port and place on PORT 0060h
  1391.         bit 7    keyboard NOT locked
  1392.         bit 6    =0 first video is CGA
  1393.             =1 first video is MDA
  1394.         bit 5    =0 factory testmode
  1395.             =1 normal
  1396.         bit 4    =0 256KB RAM, 1=512KB
  1397.         bit 5,3-0 are used in Intel chipset 386sx machines with
  1398.             AMI/Phoenix BIOSes for BIOS specific hardware settings
  1399.  C0h    Compaq    places status of input port in output buffer.  Use this
  1400.           command only when the output buffer is empty
  1401.  C1h    MCA    Enhanced Command: poll input port Low nibble
  1402.  C2h    MCA    Enhanced Command: poll input port High nibble
  1403.  C8h    AMI    unblock keyboard controller lines P22 and P23
  1404.  C9h    AMI    block keyboard controller lines P22 and P23
  1405.  CAh    AMI    read keyboard mode, return in 0060 bit 0
  1406.           (bit clear if ISA mode, set if PS/2 mode)
  1407.  CBh    AMI    set keyboard mode (write back mode byte returned by CAh,
  1408.           modifying only bit 0)
  1409.  D0h    read    read output port and place on PORT 0060h (see #P072)
  1410.  D0h    Compaq    places byte in output port in output buffer. Use this command
  1411.           only when the output buffer is empty
  1412.  D1h    double    write output port.  The next byte written to port 0060h will
  1413.           be written to the 804x output port; the original IBM AT and
  1414.           many compatibles use bit 1 of the output port to control
  1415.           the A20 gate.
  1416.         Important: bit 0 (system reset) should always be set here, as
  1417.               the system may hang constantly, use pulse output port
  1418.               (FEh) instead.
  1419.  D1h    Compaq    the system speed bits are not set by this command use
  1420.           commands A1-A6 (!) for speed functions.
  1421.  D2h    MCA    Enhanced Command: write keyboard output buffer
  1422.  D3h    MCA    Enhanced Command: write pointing device out.buf.
  1423.  D4h    MCA    write to mouse/pointing device instead of to keyboard; this
  1424.           controller command must precede every PORT 0060h command
  1425.           directed to the mouse, otherwise it will be sent to the
  1426.           keyboard
  1427.  D4h    AWARD    Enhanced Command: write to auxiliary device
  1428.  DDh    sngl    disable address line A20 (HP Vectra only???)
  1429.         default in Real Mode
  1430.  DFh    sngl    enable address line A20 (HP Vectra only???)
  1431.  E0h    read    read test inputs.
  1432.         bit0 = kbd clock, bit1 = kbd data
  1433.  Exxx    AWARD    Enhanced Command: active output port
  1434.  EDh    double    this is a two part command to control the state of the
  1435.           NumLock, CpasLock and ScrollLock LEDs
  1436.         The second byte contains the state to set LEDs.
  1437.             bit 7-3    reserved. should be set to 0.
  1438.             bit 2 = 0    Caps Lock LED off
  1439.             bit 1 = 0    Num Lock LED off
  1440.             bit 0 = 0    Scroll Lock LED off
  1441.  F0-FF    sngl    pulse output port low for 6 microseconds.
  1442.         bits 0-3 contain the mask for the bits to be pulsed.  A bit is
  1443.           pulsed if its mask bit is zero
  1444.         bit0=system reset. Don't set to zero. Pulse only!
  1445. Note:     keyboard controllers are widely different from each other.  You
  1446.        cannot generally exchange them between different machines.
  1447.      (Award) Derived from Award's Enhanced KB controller advertising sheet.
  1448.      (Compaq) Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  1449.  
  1450. (Table P069)
  1451. Values for HP Vectra control buffer command code:
  1452.  00h-54h insert standard key make code into 8041 scancode buf
  1453.  55h-77h insert HP key make code into 8041 scancode buffer
  1454.  7Ah    pass through next data byte
  1455.  7Bh    set RAM Switch to 0
  1456.  7Ch    set RAM Switch to 1 (default)
  1457.  7Dh    set CRT Switch to 0
  1458.  7Eh    set CRT Switch to 1 (default)
  1459.  7Fh    reserved
  1460.  80h-D4h insert standard key break code into scancode buffer
  1461.  D5h-F7h insert HP key break code into scancode buffer
  1462.  F8h    enable AutoPoll
  1463.  F9h    disable AutoPoll
  1464.  FAh-FEh reserved
  1465.  FFh    keyboard overrun
  1466. SeeAlso: PORT 0068h-W
  1467.  
  1468. Bitfields for Compaq keyboard command byte:
  1469. Bit(s)    Description    (Table P070)
  1470.  7    reserved
  1471.  6    =1 convert KB codes to 8086 scan codes
  1472.  5    =0 use 11-bit codes, 1=use 8086 codes
  1473.  4    =0 enable keyboard, 1=disable keyboard
  1474.  3    ignore security lock state
  1475.  2    this bit goes into bit2 status reg.
  1476.  1    reserved (0)
  1477.  0    generate interrupt when output buffer full
  1478. SeeAlso: #P071
  1479.  
  1480. Bitfields for keyboard command byte (alternate description):
  1481. Bit(s)    Description    (Table P071)
  1482.  7    reserved (0)
  1483.  6    IBM PC compatibility mode
  1484.  5    IBM PC mode
  1485.     no parity, no stop bits, no translation
  1486.     (PS/2) force mouse clock low
  1487.  4    disable keyboard (clock)
  1488.  3    inhibit override
  1489.     (PS/2) reserved
  1490.  2    system flag
  1491.  1    reserved (0)
  1492.     (PS/2) enable mouse output buffer full interrupt
  1493.  0    enable output buffer full interrupt
  1494. SeeAlso: #P070,#P072
  1495.  
  1496. Bitfields for keyboard controller output port:
  1497. Bit(s)    Description    (Table P072)
  1498.  7    keyboard data (output)
  1499.  6    keyboard clock (output)
  1500.  5    input buffer empty
  1501.  4    output buffer empty
  1502.  3    undefined
  1503.  2    undefined
  1504.     used by Intel 386sx Chipset with AMI/Phoenix BIOSes for BIOS-specific
  1505.       configuration of turbo switch
  1506.  1    gate address A20
  1507.  0    system reset
  1508. Note:    bit 0 (system reset) should always be set when writing the output
  1509.       port, as the system may hang constantly; use pulse output port
  1510.       (command FEh) instead.
  1511. SeeAlso: #P071
  1512. ----------P0065------------------------------
  1513. PORT 0065 - AT&T 6300+ - HIGH/LOW CHIP SELECT
  1514. ----------P0065------------------------------
  1515. PORT 0065 - ???
  1516.  
  1517. 0065  RW  ???
  1518.         bit 2: A20 gate control (set = A20 enabled, clear = disabled)
  1519. ----------P00660067--------------------------
  1520. PORT 0066-0067 - AT&T 6300+ - SYSTEM CONFIGURATION SWITCHES
  1521. ----------P0066------------------------------
  1522. PORT 0066 - IBM 4717 Magnetic Stripe Reader - ???
  1523. SeeAlso: PORT 0069h"Magnetic Stripe"
  1524. ----------P0068------------------------------
  1525. PORT 0068 - C&T CHIPSETS - TURBO MODE CONTROL
  1526.  
  1527. Note:      on Micronics 386-25/386-33/486-25 motherboards, setting this port to
  1528.         00h enables full speed; setting it to C0h slows the system down by
  1529.         a factor corresponding to the value programmed into the EISA
  1530.         interval timer 2 at ports 004Ah and 004Bh
  1531. ----------P0069------------------------------
  1532. PORT 0069 - IBM 4717 Magnetic Stripe Reader - ???
  1533. SeeAlso: PORT 0066h"Magnetic Stripe"
  1534. ----------P006B006F--------------------------
  1535. PORT 006B-006F - SSGA CONTROL REGISTERS
  1536.  
  1537. 006B  ??  RAM enable/remap
  1538. 006C  ??  undocumented
  1539. 006D  ??  undocumented
  1540. 006E  ??  undocumented
  1541. 006F  ??  undocumented
  1542. ----------P0070007F--------------------------
  1543. PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK)
  1544. Note:    the real-time clock may be either a discrete MC146814, MC146818, or
  1545.       an emulation thereof built into the motherboard chipset
  1546.  
  1547. 0070  -W  CMOS RAM index register port (ISA, EISA)
  1548.          bit 7    = 1  NMI disabled
  1549.             = 0  NMI enabled
  1550.          bit 6-0     CMOS RAM index (64 bytes, sometimes 128 bytes)
  1551.  
  1552.         any write to 0070 should be followed by an action to 0071
  1553.         or the RTC wil be left in an unknown state.
  1554.  
  1555. 0071  RW  CMOS RAM data port (ISA, EISA) (see #P073)
  1556.  
  1557. (Table P073)
  1558. Values for Real-Time Clock register number (see also CMOS.LST):
  1559.  00h-0Dh clock registers
  1560.  0Eh    diagnostics status byte
  1561.  0Fh    shutdown status byte
  1562.  10h    diskette drive type for A: and B:
  1563.  11h    reserved / IBM fixed disk / setup options
  1564.  12h    fixed disk drive type for drive 0 and drive 1
  1565.  13h    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  1566.  14h    equipment byte
  1567.  15h    LSB of system base memory in Kb
  1568.  16h    MSB of system base memory in Kb
  1569.  17h    LSB of total extended memory in Kb
  1570.  18h    MSB of total extended memory in Kb
  1571.  19h    drive C extension byte
  1572.  1Ah    drive D extension byte
  1573.  1Bh-2Dh reserved
  1574.  20h-27h commonly used for first user-configurable drive type
  1575.  2Eh    CMOS MSB checksum over 10-2D
  1576.  2Fh    CMOS LSB checksum over 10-2D
  1577.  30h    LSB of extended memory found above 1Mb at POST
  1578.  31h    MSB of extended memory found above 1Mb at POST
  1579.  32h    date century in BCD
  1580.  33h    information flags
  1581.  34h-3Fh    reserved    
  1582.  35h-3Ch commonly used for second user-configurable drive type
  1583.  3Dh-3Eh word to 82335 MCR memory config register at [22] (Phoenix)
  1584.  42h-4Ch AMI 1990 Hyundai super-NB368S notebook
  1585.     ???
  1586.  54h-57h AMI 1990 Hyundai super-NB368S notebook
  1587.     ???
  1588.  5Ch-5Dh AMI 1990 Hyundai super-NB368S notebook
  1589.     ???
  1590.  60h-61h AMI 1990 Hyundai super-NB368S notebook
  1591.     ???
  1592. ----------P0073------------------------------
  1593. PORT 0073 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  1594. SeeAlso: PORT 0075h
  1595.  
  1596. 0073  RW  ???
  1597.     bit 7: ???
  1598.     bit 6: disable ROM shadowing
  1599.     bit 5: ??? (related to IDE controller)
  1600.     bit 4: ???
  1601.     bit 3: ???
  1602. ----------P00740076--------------------------
  1603. PORT 0074-0076 - SECONDARY CMOS (Compaq), NVRAM (IBM) ACCESS
  1604. Note:    NVRAM may be 2K, 8K, or 16K
  1605. SeeAlso: PORT 0070h-007Fh,CMOS.LST
  1606.  
  1607. 0074  -W  secondary CMOS RAM (IBM NVRAM) index, low byte
  1608. 0075  -W  secondary CMOS RAM (IBM NVRAM) index, high byte
  1609. 0076  RW  secondary CMOS RAM (IBM NVRAM) data byte
  1610. ----------P0075------------------------------
  1611. PORT 0075 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  1612. SeeAlso: PORT 0073h,PORT 0078h"82378IB"
  1613.  
  1614. 0075  R-  ???
  1615.       bits 3-2: external bus speed???
  1616.            00  50 MHz
  1617.            01  66 MHz
  1618.            10  60 MHz
  1619.            11  40 MHz
  1620. ----------P0078------------------------------
  1621. PORT 0078 - HP-Vectra - HARD RESET: NMI ENABLE/DISABLE
  1622.  
  1623. 0078  ?W  NMI enable/disable
  1624.         bit 7 = 0  disable & clear hard reset from HP-HIL controller
  1625.               = 1  enable hard reset from HP-HIL controller chip
  1626.         bit 6-0       reserved
  1627. ----------P0078------------------------------
  1628. PORT 0078 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - BIOS COUNT-DOWN TIMER
  1629. Notes:    the BIOS uses this port for certain fine timings; presumably it is
  1630.       independent of processor speed (it appears to decrement at 1 MHz)
  1631.     the address at which this port appears may be set via the 82378's
  1632.       PCI configuration space word at offset 0080h (see #0642), or the
  1633.       timer may be disabled entirely
  1634. SeeAlso: PORT 0075h
  1635.  
  1636. 0078w -W  set count-down timer
  1637. 0078w R-  get current count (timer stops when it reaches 0000h)
  1638. ----------P0078007F--------------------------
  1639. PORT 0078-007F - PC radio by CoZet Info Systems
  1640. Range:    The I/O address range is dipswitch selectable from:
  1641.        038-03F and 0B0-0BF
  1642.        078-07F and 0F0-0FF
  1643.        138-13F and 1B0-1BF
  1644.        178-17F and 1F0-1FF
  1645.        238-23F and 2B0-2BF
  1646.        278-27F and 2F0-2FF
  1647.        338-33F and 3B0-3BF
  1648.        378-37F and 3F0-3FF
  1649. Note:    All of these addresses show a readout of FFh in initial state.
  1650.     Once started, all of the addresses show FBh, whatever might happen.
  1651. ----------P007C007D--------------------------
  1652. PORT 007C-007D - HP-Vectra - PIC 3 - PROGRAMMABLE INTERRUPT CONTROLLER (8259)
  1653. Notes:    cascaded to first controller.
  1654.     used for keyboard and input device interface.
  1655. SeeAlso: PORT 0020h-0021h,INT 68"Vectra",INT 6E"Vectra"
  1656.  
  1657. 007C  RW  HP-Vectra  PIC 3  see at 0020     PIC 1
  1658. 007D  RW  HP-Vectra  PIC 3  see at 0021     PIC 1
  1659. ----------P0080------------------------------
  1660. PORT 0080 - MANUFACTURING DIAGNOSTICS PORT
  1661. Note:    sometimes used for a POST hex display
  1662.  
  1663. 0080  -W  Manufacturing Diagnostics port
  1664. 0080  R-  ???
  1665.  
  1666. (Table P074)
  1667. Values for AMI BIOS diagnostics codes:
  1668.  00h    system boot completed, control passed to INT 19 bootstrap loader
  1669.  01h    register test
  1670.  02h    video initialization; NMIs disabled
  1671.  03h    power-on delay complete
  1672.  04h    pre-keyboard-test initializations complete
  1673.  05h    soft-reset/power-on setting determined
  1674.  06h    ROM enabled
  1675.  07h    ROM BIOS checksum test passed
  1676.  08h    keyboard BAT command issued
  1677.  09h    keyboard controller BAT result verified
  1678.  0Ah    keyboard controller command code issued
  1679.  0Bh    keyboard controller command byte written
  1680.  0Ch    keyboard controller pins 23/24 blocked and unblocked
  1681.  0Dh    keyboard controller NOP processing in progress
  1682.  0Eh    CMOS RAM shutdown register read/write test passed
  1683.  0Fh    CMOS RAM checksum calculation complete
  1684.  10h    CMOS RAM initialization complete
  1685.  11h    CMOS RAM status register initialized
  1686.  12h    DMA controllers 1/2 and interrupt controllers 1/2 disabled
  1687.  13h    video display disabled, port B initialized
  1688.  14h    chipset initialization, auto memory detection
  1689.  15h    8254 channel 2 test half complete
  1690.  16h    8254 channel 2 test completed
  1691.  17h    8254 channel 1 test completed
  1692.  18h    8254 channel 0 test completed
  1693.  19h    memory refresh started
  1694.  1Ah    memory refresh line is toggling
  1695.  1Bh    memory refresh test completed
  1696.  20h    base 64K memory test started
  1697.  21h    address line test passed
  1698.  22h    parity toggle complete
  1699.  23h    base 64K sequential read/write test passed
  1700.  24h    pre-interrupt-vector-initialization configuration complete
  1701.  25h    interrupt vectors initialized
  1702.  26h    8042 input port read
  1703.  27h    global data initialization complete
  1704.  28h    post-interrupt-vector-initialization initialization complete
  1705.  29h    monochrome mode set
  1706.  2Ah    color mode set
  1707.  2Bh    parity toggle on option video ROM test complete
  1708.  2Ch    initialization before video ROM control complete
  1709.  2Dh    video ROM check complete
  1710.  2Eh    !!!
  1711.  A9h    returned from E0000h adapter ROM
  1712.  AAh    final initializations after adapter ROM initializations complete
  1713. ----------P0080008F--------------------------
  1714. PORT 0080-008F - DMA PAGE REGISTERS (74612)
  1715.  
  1716. 0080  RW  extra page register (temporary storage)
  1717. 0081  RW  DMA channel 2 address byte 2
  1718. 0082  RW  DMA channel 3 address byte 2
  1719. 0083  RW  DMA channel 1 address byte 2
  1720. 0084  RW  extra page register
  1721. 0085  RW  extra page register
  1722. 0086  RW  extra page register
  1723. 0087  RW  DMA channel 0 address byte 2
  1724. 0088  RW  extra page register
  1725. 0089  RW  DMA channel 6 address byte 2
  1726. 008A  RW  DMA channel 7 address byte 2
  1727. 008B  RW  DMA channel 5 address byte 2
  1728. 008C  RW  extra page register
  1729. 008D  RW  extra page register
  1730. 008E  RW  extra page register
  1731. 008F  RW  DMA refresh page register
  1732. ----------P0080009F--------------------------
  1733. PORT 0080-009F - Intel386sx CHIPSET 82231
  1734. Note:    includes the DMA controller functionality on PORT 0080h to PORT 008Fh
  1735. ----------P0084------------------------------
  1736. PORT 0084 - Compaq POST Diagnostic
  1737. --------X-P0084------------------------------
  1738. PORT 0084 - EISA - SYNCHRONIZE BUS CYCLE
  1739. ----------P00850086--------------------------
  1740. PORT 0085-0086 - Intel "Triton" chipset - ???
  1741. SeeAlso: PORT 00EBh"Triton"
  1742.  
  1743. 0085  ?W  ???
  1744. 0086  ?W  ???
  1745. ----------P0090009F--------------------------
  1746. PORT 0090-009F - PS/2 - POS (PROGRAMMABLE OPTION SELECT)
  1747.  
  1748. 0090  ??  Central arbitration control port
  1749. 0091  R-  Card selection feedback
  1750. 0092  RW  PS/2 system control port A  (port B is at 0061) (see #P075)
  1751. 0094  -W  system board enable/setup register (see #P076)
  1752. 0095  --  reserved
  1753. 0096  -W  adapter enable / setup register
  1754.          bit 3 = 1  setup adapters
  1755.                = 0  enable registers
  1756. 0097  --  reserved
  1757.  
  1758. Bitfields for PS/2 system control port A:
  1759. Bit(s)    Description    (Table P075)
  1760.  7-6    any bit set to 1 turns activity light on
  1761.  5    reserved
  1762.  4    watchdog timout occurred 
  1763.  3    =0 RTC/CMOS security lock (on password area) unlocked
  1764.     =1 CMOS locked (done by POST)
  1765.  2    reserved
  1766.  1    A20 is active
  1767.  0    =0 system reset or write
  1768.     =1 pulse alternate reset pin (alternate CPU reset)
  1769. SeeAlso: #P076,MSR 00001000h
  1770.  
  1771. Bitfields for PS/2 system board enable/setup register:
  1772. Bit(s)    Description    (Table P076)
  1773.  7    =1  enable functions
  1774.     =0  setup functions
  1775.  5    =1  enables VGA
  1776.     =0  setup VGA
  1777.  2    =1  enable integrated SCSI (PS/2 M77)
  1778.     =0  setup integrated SCSI
  1779. SeeAlso: #P075
  1780. ----------P00A000AF--------------------------
  1781. PORT 00A0-00AF - PIC 2 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  1782. SeeAlso: PORT 0020h-003Fh"PIC 1",INT 70"IRQ8",INT 77"IRQ15"
  1783.  
  1784. 00A0  RW  NMI mask register (XT)
  1785.          bit 7 = 0 disabled
  1786.                = 1 enabled
  1787. 00A0  RW  PIC 2     same as 0020 for PIC 1
  1788. 00A1  RW  PIC 2     same as 0021 for PIC 1 except for OCW1 (see #P077)
  1789.  
  1790. Bitfields for PIC2 output control word OCW2:
  1791. Bit(s)    Description    (Table P077)
  1792.  7    disable IRQ15 (reserved)
  1793.  6    disable IRQ14 (fixed disk interrupt)
  1794.  5    disable IRQ13 (coprocessor exception interrupt)
  1795.  4    disable IRQ12 (mouse interrupt)
  1796.  3    disable IRQ11 (reserved)
  1797.  2    disable IRQ10 (reserved)
  1798.  1    disable IRQ9  (redirect cascade)
  1799.  0    disable IRQ8  (real-time clock interrupt)
  1800. SeeAlso: #P010
  1801. ----------P00B000BF--------------------------
  1802. PORT 00B0-00BF - PC radio by CoZet Info Systems
  1803. Range:    The I/O address range is dipswitch selectable from:
  1804.        038-03F and 0B0-0BF
  1805.        078-07F and 0F0-0FF
  1806.        138-13F and 1B0-1BF
  1807.        178-17F and 1F0-1FF
  1808.        238-23F and 2B0-2BF
  1809.        278-27F and 2F0-2FF
  1810.        338-33F and 3B0-3BF
  1811.        378-37F and 3F0-3FF
  1812. Notes:    All of these addresses show a readout of FFh in initial state.
  1813.     Once started, all of the addresses show    FBh, whatever might happen.
  1814. ----------P00B2------------------------------
  1815. PORT 00B2 - Intel 82420EX chipset - Advanced Power Management Control
  1816. Notes:    used to pass data between the operating system and the System
  1817.       Management Interrupt (SMI) handler
  1818.     writes to this port can cause an SMI; reads can cause STPCLK# to be
  1819.       asserted (putting the CPU in sleep mode)
  1820. SeeAlso: PORT 00B3h
  1821.  
  1822. 00B2  RW  control
  1823. ----------P00B3------------------------------
  1824. PORT 00B3 - Intel 82420EX chipset - Advanced Power Management Status
  1825. Note:    used to pass data between the operating system and the System
  1826.       Management Interrupt (SMI) handler
  1827. SeeAlso: PORT 00B2h
  1828.  
  1829. 00B3  RW  status
  1830. ----------P00C0------------------------------
  1831. PORT 00C0 - TI SN746496 programmable tone/noise generator (PCjr)
  1832. ----------P00C000DF--------------------------
  1833. PORT 00C0-00DF - DMA 2 - SECOND DIRECT MEMORY ACCESS CONTROLLER (8237)
  1834.  
  1835. 00C0  RW  DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  1836. 00C2  RW  DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1837. 00C4  RW  DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  1838. 00C6  RW  DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1839. 00C8  RW  DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  1840. 00CA  RW  DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  1841. 00CC  RW  DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  1842. 00CE  RW  DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  1843.  
  1844. 00D0  R-  DMA channel 4-7 status register (ISA, EISA) (see #P078)
  1845. 00D0  -W  DMA channel 4-7 command register (ISA, EISA) (see #P079)
  1846. 00D2  -W  DMA channel 4-7 write request register (ISA, EISA)
  1847. 00D4  -W  DMA channel 4-7 write single mask register (ISA, EISA) (see #P080)
  1848. 00D6  -W  DMA channel 4-7 mode register (ISA, EISA) (see #P081)
  1849. 00D8  -W  DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  1850.  
  1851. 00DA  R-  DMA channel 4-7 read temporary register (ISA, EISA)
  1852. 00DA  -W  DMA channel 4-7 master clear (ISA, EISA)
  1853. 00DC  -W  DMA channel 4-7 clear mask register (ISA, EISA)
  1854. 00DE  -W  DMA channel 4-7 write mask register (ISA, EISA)
  1855.  
  1856. Bitfields for DMA channel 4-7 status register:
  1857. Bit(s)    Description    (Table P078)
  1858.  7 = 1    channel 7 request
  1859.  6 = 1    channel 6 request
  1860.  5 = 1    channel 5 request
  1861.  4 = 1    channel 4 request
  1862.  3 = 1    terminal count on channel 7
  1863.  2 = 1    terminal count on channel 6
  1864.  1 = 1    terminal count on channel 5
  1865.  0 = 1    terminal count on channel 4
  1866. SeeAlso: #P001,#P079
  1867.  
  1868. Bitfields for DMA channel 4-7 command register:
  1869. Bit(s)    Description    (Table P079)
  1870.  7    DACK sense active high
  1871.  6    DREQ sense active high
  1872.  5    =1  extended write selection
  1873.     =0  late write selection
  1874.  4    rotating priority instead of fixed priority
  1875.  3    compressed timing
  1876.  2    =1  enable controller
  1877.     =0  enable memory-to-memory transfer
  1878.  1-0    channel number (00 = 4 to 11 = 7)
  1879. SeeAlso: #P002,#P078,#P080
  1880.  
  1881. Bitfields for DMA channel 4-7 write single mask register:
  1882. Bit(s)    Description    (Table P080)
  1883.  7-3    reserved
  1884.  2    =0  clear mask bit
  1885.     =1  set mask bit
  1886.  1-0    channel select
  1887.     00 channel 4 select
  1888.     01 channel 5 select
  1889.     10 channel 6 select
  1890.     11 channel 7 select
  1891. SeeAlso: #P004,#P079
  1892.  
  1893. Bitfields for DMA channel 4-7 mode register:
  1894. Bit(s)    Description    (Table P081)
  1895.  7-6    transfer mode
  1896.     00  demand mode
  1897.     01  single mode
  1898.     10  block mode
  1899.     11  cascade mode
  1900.  5    direction
  1901.     0  address increment select
  1902.     1  address decrement select
  1903.  4    autoinitialisation enabled
  1904.  3-2    operation
  1905.     00  verify operation
  1906.     01  write to memory
  1907.     10  read from memory
  1908.     11  reserved
  1909.  1-0    channel number
  1910.     00  channel 4 select
  1911.     01  channel 5 select
  1912.     10  channel 6 select
  1913.     11  channel 7 select
  1914. SeeAlso: #P005,#P080
  1915. ----------P00E000E1--------------------------
  1916. PORT 00E0-00E1 - CHIPSET FROM ACT
  1917.  
  1918. 00E0  ?W  index for accesses to data port
  1919. 00E1  R?  chip set data
  1920. ----------P00E000E7--------------------------
  1921. PORT 00E0-00E7 - MICROCHANNEL
  1922.  
  1923. 00E0  RW  split address register, memory encoding registers PS/2m80 only
  1924. 00E1  RW  memory register
  1925. 00E3  RW  error trace
  1926. 00E4  RW  error trace
  1927. 00E5  RW  error trace
  1928. 00E7  RW  error trace
  1929. ----------P00E000EF--------------------------
  1930. PORT 00E0-00EF - IBM PS/1 CLOCK
  1931. ----------P00E1------------------------------
  1932. PORT 00E1 - STB PowerMEG - ???
  1933. Desc:    the STB PowerMEG is a memory expansion card capable of providing EMS
  1934.  
  1935. 00E1  RW  ???
  1936.       bit 0: ???
  1937. ----------P00EB------------------------------
  1938. PORT 00EB - Intel "Triton" chipset - ???
  1939. SeeAlso: PORT 0085h"Triton"
  1940.  
  1941. 00EB  ?W  ???
  1942. ----------P00EC00ED--------------------------
  1943. PORT 00EC-00ED - Compaq LTE Elite
  1944. ----------P00ED------------------------------
  1945. PORT 00ED - ???
  1946. Note:    on a number of machines, the BIOS appears to write a copy of any
  1947.       data sent to numerous other ports to this port as well
  1948.  
  1949. 00EDw  ?W  ???
  1950. ----------P00EF------------------------------
  1951. PORT 00EF - Hyunday Super-NB386S (AMD386sx with Intel chipset)
  1952. Warning: any access to this port causes a cold reset on this machine!
  1953. ----------P00F000F5--------------------------
  1954. PORT 00F0-00F5 - PCjr Disk Controller
  1955.  
  1956. 00F0  ??  disk controller
  1957. 00F2  ??  disk controller control port
  1958. 00F4  ??  disk controller status register
  1959. 00F5  ??  disk controller data port
  1960. ----------P00F000FF--------------------------
  1961. PORT 00F0-00FF - coprocessor (8087..80387)
  1962.  
  1963. 00F0  -W  math coprocessor clear busy latch
  1964. 00F1  -W  math coprocessor reset
  1965. 00F8  RW  opcode transfer
  1966. 00FA  RW  opcode transfer
  1967. 00FC  RW  opcode transfer
  1968. ----------P00F9------------------------------
  1969. PORT 00F9 - Compaq LTE Elite
  1970. ----------P00FB------------------------------
  1971. PORT 00FB - Compaq LTE Elite
  1972. ----------P00F900FF--------------------------
  1973. PORT 00F9-00FF - PC radio by CoZet Info Systems
  1974. Range:    The I/O address range is dipswitch selectable from:
  1975.        038-03F and 0B0-0BF
  1976.        078-07F and 0F0-0FF
  1977.        138-13F and 1B0-1BF
  1978.        178-17F and 1F0-1FF
  1979.        238-23F and 2B0-2BF
  1980.        278-27F and 2F0-2FF
  1981.        338-33F and 3B0-3BF
  1982.        378-37F and 3F0-3FF
  1983. Notes:    All of these addresses show a readout of FFh in initial state.
  1984.     Once started, all of the addresses show    FBh, whatever might happen.
  1985. ----------P0100------------------------------
  1986. PORT 0100 - 3COM 3C509 Ethernet card - ID port
  1987. Note: this port is present only on the 3C509, not on any other 3COM card
  1988. SeeAlso: PORT 0110h,PORT 0120h
  1989. ----------P01000107--------------------------
  1990. PORT 0100-0107 - PS/2 POS (Programmable Option Select)
  1991. Note:    the default value for PORT 0102h is stored in CMOS 31h
  1992.  
  1993. 0100  R      POS register 0    Low adapter ID byte
  1994. 0101  R      POS register 1    High adapter ID byte
  1995. 0102  RW  POS register 2    option select data byte 1 (see #P082)
  1996. 0103  RW  POS register 3    option select data byte 2
  1997. 0104  RW  POS register 4    option select data byte 3
  1998. 0105  RW  POS register 5    option select data byte 4
  1999.          bit 7    channel active (-CHCK)
  2000.          bit 6    channel status
  2001. 0106  RW  POS register 6    Low subaddress extension
  2002. 0107  RW  POS register 7    High subaddress extension
  2003.  
  2004. Bitfields for PS/2 POS register 2, option select data byte 1:
  2005. Bit(s)    Description    (Table P082)
  2006.  7      0  = unidirectional LPT port
  2007.       1  = bidirectional LPT port
  2008.  6-5    PS/2 Model 50 and higher
  2009.      00b = default LPT port at 3BCh
  2010.      01b = ""           378h
  2011.      10b = ""           278h
  2012.      11b = reserved
  2013.  4    reserved
  2014.  0    card enable (CDEN)
  2015.  0    =1 VGA sleep bit, disconnects output drivers from VGA (usage for VGA
  2016.       without monitor)
  2017. ---ET4000---
  2018.  7-4    reserved???
  2019.  3    video RAM wait enable
  2020.  2    ET4000: ROM BIOS wait enable
  2021.  1    ET4000: I/O wait enable
  2022. Note:    access to this port is only possible when PORT 0094h bit 7 is low.
  2023. ----------P0100010F--------------------------
  2024. PORT 0100-010F - CompaQ Tape drive adapter. alternate address at 0300
  2025. ----------P0108010F--------------------------
  2026. PORT 0108-010F - IBM PS/2 - 8 digit LED info panel
  2027.  
  2028. 010F  -W  leftmost character on display
  2029. 010E  -W  second character
  2030.  ...
  2031. 0108  -W  eighth character
  2032. ----------P0110------------------------------
  2033. PORT 0110 - 3COM 3C509 Ethernet card - ID port (alternate address)
  2034. Note:    this port is present only on the 3C509, not on any other 3COM card
  2035. SeeAlso: PORT 0100h"3COM",PORT 0120h"3COM"
  2036. ----------P0120------------------------------
  2037. PORT 0120 - 3COM 3C509 Ethernet card - ID port (alternate address)
  2038. Note:    this port is present only on the 3C509, not on any other 3COM card
  2039. SeeAlso: PORT 0100h"3COM",PORT 0110h"3COM"
  2040. ----------P0130013F--------------------------
  2041. PORT 0130-013F - CompaQ SCSI adapter. alternate address at 0330
  2042. ----------P01300133--------------------------
  2043. PORT 0130-0133 - Adaptec 154xB/154xC SCSI adapter.
  2044. Range:    alternate address at 0134, 0230, 0234, 0330 and 0334
  2045. ----------P01340137--------------------------
  2046. PORT 0134-0137 - Adaptec 154xB/154xC SCSI adapter.
  2047. Range:    alternate address at 0130, 0230, 0234, 0330 and 0334
  2048. ----------P0138013F--------------------------
  2049. PORT 0138-013F - PC radio by CoZet Info Systems
  2050. Range:    The I/O address range is dipswitch selectable from:
  2051.        038-03F and 0B0-0BF
  2052.        078-07F and 0F0-0FF
  2053.        138-13F and 1B0-1BF
  2054.        178-17F and 1F0-1FF
  2055.        238-23F and 2B0-2BF
  2056.        278-27F and 2F0-2FF
  2057.        338-33F and 3B0-3BF
  2058.        378-37F and 3F0-3FF
  2059. Notes:    All of these addresses show a readout of FFh in initial state.
  2060.     Once started, all of the addresses show    FBh, whatever might happen.
  2061. ----------P0140014F--------------------------
  2062. PORT 0140-014F - SCSI (alternate Small Computer System Interface) adapter
  2063. Note:    first adapter is at 0340-034F
  2064. ----------P01400157--------------------------
  2065. PORT 0140-0157 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  2066. ----------P015C015D--------------------------
  2067. PORT 015C-015D - Dell Enhanced Parallel Port
  2068. SeeAlso: PORT 002Eh,PORT 026Eh,PORT 0398h
  2069.  
  2070. 015C  -W  index for data port
  2071. 015D  RW  EPP command data
  2072. ----------P015F------------------------------
  2073. PORT 015F - ARTEC Handyscanner A400Z.  alternate address at 35F.
  2074. ----------P0168016F--------------------------
  2075. PORT 0168-016F - 4th (Quaternary) EIDE Controller
  2076. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2077. SeeAlso: PORT 0170h-0177h,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  2078. ----------P01700177--------------------------
  2079. PORT 0170-0177 - HDC 2    (2nd Fixed Disk Controller) (ISA, EISA)
  2080. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2081. SeeAlso: PORT 0168h-016Fh,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  2082. ----------P01780179--------------------------
  2083. PORT 0178-0179 - Power Management
  2084.  
  2085. 0178  -W  index selection for data port
  2086. 0179  RW  power management data
  2087. ----------P0178017F--------------------------
  2088. PORT 0178-017F - PC radio by CoZet Info Systems
  2089. Range:    The I/O address range is dipswitch selectable from:
  2090.        038-03F and 0B0-0BF
  2091.        078-07F and 0F0-0FF
  2092.        138-13F and 1B0-1BF
  2093.        178-17F and 1F0-1FF
  2094.        238-23F and 2B0-2BF
  2095.        278-27F and 2F0-2FF
  2096.        338-33F and 3B0-3BF
  2097.        378-37F and 3F0-3FF
  2098. Notes:    All of these addresses show a readout of FFh in initial state.
  2099.     Once started, all of the addresses show    FBh, whatever might happen.
  2100. ----------P01CE01CF--------------------------
  2101. PORT 01CE-01CF - ATI Mach32 video chipset - ???
  2102.  
  2103. 01CE  -W  index register
  2104. 01CF  RW  data register
  2105. ----------P01E801EF--------------------------
  2106. PORT 01E8-01EF - Headland HL21 & Acer M5105 chipsets - SYSTEM CONTROL
  2107.  
  2108. 01ED  RW  select internal register. Data to/from 01EF
  2109. 01EE  R-  ???
  2110. 01EF  RW  register value
  2111.     05h  = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)
  2112.          = 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)
  2113.     10h memory size
  2114.        bits 2-0 = size
  2115.            (undefined,512K,640K,1024K,2560K,2048K,4096K,undef.)
  2116.     14h ???
  2117.        bit 2: 384K RAM of first 1024K relocated to top of memory
  2118. ----------P01E801EF--------------------------
  2119. PORT 01E8-01EF - 3rd (Tertiary) EIDE Controller
  2120. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2121. SeeAlso: PORT 0168h-016Fh,PORT 0170h-0177h,PORT 01F0h-01F7h
  2122. ----------P01F001F7--------------------------
  2123. PORT 01F0-01F7 - HDC 1    (1st Fixed Disk Controller) (ISA, EISA)
  2124. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2125. SeeAlso: PORT 0170h-0177h
  2126.  
  2127. 01F0  RW  data register
  2128. 01F1  R-  error register (see #P083)
  2129. 01F1  -W  WPC/4     (Write Precompensation Cylinder divided by 4)
  2130. 01F2  RW  sector count
  2131. 01F3  RW  sector number (CHS mode)
  2132.       logical block address, bits 0-7 (LBA mode)
  2133. 01F4  RW  cylinder low (CHS mode)
  2134.       logical block address, bits 15-8 (LBA mode)
  2135. 01F5  RW  cylinder high (CHS mode)
  2136.       logical block address, bits 23-16 (LBA mode)
  2137. 01F6  RW  drive/head (see #P084)
  2138. 01F7  R-  status register (see #P085)
  2139. 01F7  -W  command register (see #P086)
  2140.  
  2141. Bitfields for Hard Disk Controller error register:
  2142. Bit(s)    Description    (Table P083)
  2143. ---diagnostic mode errors---
  2144.  7    which drive failed (0 = master, 1 = slave)
  2145.  6-3    reserved
  2146.  2-0    error code
  2147.     001    no error detected
  2148.     010    formatter device error
  2149.     011    sector buffer error
  2150.     100    ECC circuitry error
  2151.     101    controlling microprocessor error
  2152. ---operation mode---
  2153.  7    bad block detected
  2154.  6    uncorrectable ECC error
  2155.  5    reserved
  2156.  4    ID found
  2157.  3    reserved
  2158.  2    command aborted prematurely
  2159.  1    track 000 not found
  2160.  0    DAM not found (always 0 for CP-3022)
  2161. SeeAlso: #P084,#P085
  2162.  
  2163. Bitfields for hard disk controller drive/head specifier:
  2164. Bit(s)    Description    (Table P084)
  2165.  7    =1
  2166.  6    LBA mode enabled, rather than default CHS mode
  2167.  5    =1
  2168.  4    drive select (0 = drive 0, 1 = drive 1)
  2169.  3-0    head select bits (CHS mode)
  2170.     logical block address, bits 27-24 (LBA mode)
  2171. SeeAlso: #P083,#P085
  2172.  
  2173. Bitfields for hard disk controller status register:
  2174. Bit(s)    Description    (Table P085)
  2175.  7    controller is executing a command
  2176.  6    drive is ready
  2177.  5    write fault
  2178.  4    seek complete
  2179.  3    sector buffer requires servicing
  2180.  2    disk data read successfully corrected
  2181.  1    index - set to 1 each disk revolution
  2182.  0    previous command ended in an error
  2183. SeeAlso: #P083,#P086
  2184.  
  2185. (Table P086)
  2186. Values for hard disk controller command codes:
  2187. Command     Spec    Type    Proto    Description            class:
  2188.  00h        opt    nondata    NOP                    
  2189.  1xh        opt    nondata    recalibrate              1
  2190.  20h        req    PIOin    read sectors with retry          1
  2191.  21h        req    PIOin    read sectors without retry      1
  2192.  22h        req    PIOin    read long with retry          1
  2193.  23h        req    PIOin    read long without retry          1
  2194.  30h        req    PIOout    write sectors with retry      2
  2195.  31h        req    PIOout    write sectors without retry      2
  2196.  32h        req    PIOout    write long with retry          2
  2197.  33h        req    PIOout    write long without retry      2
  2198.  3Ch     IDE    opt    PIOout    write verify              3
  2199.  40h        req    nondata    read verify sectors with retry      1
  2200.  41h        req    nondata    read verify sectors without retry 1
  2201.  50h        req    vend    format track              2
  2202.  7xh        req    nondata    seek                  1
  2203.  8xh     IDE    vendor    vend    vendor unique 3
  2204.  90h        req    nondata    execute drive diagnostics      1
  2205.  91h        req    nondata    initialize drive parameters      1
  2206.  92h        opt    PIOout    download microcode            
  2207.  94h E0h IDE    opt    nondata    standby immediate          1
  2208.  95h E1h IDE    opt    nondata    idle immediate              1
  2209.  96h E2h IDE    opt    nondata    standby                  1
  2210.  97h E3h IDE    opt    nondata    idle                  1
  2211.  98h E5h IDE    opt    nondata    check power mode          1
  2212.  99h E6h IDE    opt    nondata    set sleep mode              1
  2213.  9Ah     IDE    vendor    vend    vendor unique 1
  2214.  A1h     ATAPI    opt    PIOin    ATAPI Identify            (see #P089)
  2215.  C0h-C3h IDE    vendor    vend    vendor unique 2
  2216.  C4h     IDE    opt    PIOin    read multiple              1
  2217.  C5h     IDE    opt    PIOout    write multiple              3
  2218.  C6h     IDE    opt    nondata    set multiple mode          1
  2219.  C8h     IDE    opt    DMA    read DMA with retry          1
  2220.  C9h     IDE    opt    DMA    read DMA without retry          1
  2221.  CAh     IDE    opt    DMA    write DMA with retry          3
  2222.  CBh     IDE    opt    DMA    write DMA w/out retry          3
  2223.  DBh     ATA-2    opt    vend    acknowledge media chng        [Removable]
  2224.  DCh     ATA-2    opt    vend    Boot / Post-Boot        [Removable]
  2225.  DDh     ATA-2    opt    vend    Boot / Pre-Boot    (ATA-2)        [Removable]
  2226.  DEh     ATA-2    opt    vend    door lock            [Removable]
  2227.  DFh     ATA-2    opt    vend    door unlock            [Removable]
  2228.  E0h-E3h            (see 94h-96h)
  2229.  E4h     IDE    opt    PIOin    read buffer              1
  2230.  E5h-E6h            (see 98h-99h)
  2231.  E8h     IDE    opt    PIOout    write buffer              2
  2232.  E9h     IDE    opt    PIOout    write same              3
  2233.  EAh     ATA-3    opt        Secure Disable            [Security Mode]
  2234.  EAh     ATA-3    opt        Secure Lock            [Security Mode]
  2235.  EAh     ATA-3    opt        Secure State            [Security Mode]
  2236.  EAh     ATA-3    opt        Secure Enable WriteProt        [Security Mode]
  2237.  EBh     ATA-3    opt        Secure Enable            [Security Mode]
  2238.  EBh     ATA-3    opt        Secure Unlock            [Security Mode]
  2239.  ECh     IDE    req    PIOin    identify drive              1 (see #P087)
  2240.  EDh     ATA-2    opt    nondata    media eject            [Removable]
  2241.  EEh     ATA-3    opt        identify device DMA            (see #P087)
  2242.  EFh     IDE    opt    nondata    set features              1
  2243.  F0h-F4h IDE        vend    EATA standard    
  2244.  F5h-FFh IDE    vendor    vend    vendor unique 4
  2245. SeeAlso: #P083,#P085
  2246.  
  2247. Format of IDE Identify Drive information:
  2248. Offset    Size    Description    (Table P087)
  2249.  00h    WORD    general configuration
  2250.  02h    WORD    number of logical cylinders
  2251.  04h    WORD    reserved
  2252.  06h    WORD    number of logical heads
  2253.  08h    WORD    vendor-specific
  2254.  0Ah    WORD    vendor-specific
  2255.  0Ch    WORD    number of logical sectors
  2256.  0Eh    WORD    vendor-specific
  2257.  10h    WORD    vendor-specific
  2258.  12h    WORD    vendor-specific
  2259.  14h 10 WORDs    serial number
  2260.         no serial number if first word is 0000h
  2261.         else blank-padded ASCII serial number
  2262.  28h    WORD    vendor-specific
  2263.         [controller type]
  2264.  2Ah    WORD    vendor-specific
  2265.         [controller buffer size in 512-byte sectors]
  2266.  2Ch    WORD    number of vendor-specific (usually ECC) bytes on
  2267.           Read/Write Long
  2268.  2Eh  4    WORDs    firmware revision
  2269.         no revision number if first word is 0000h
  2270.         else blank-padded ASCII revision number
  2271.  36h 20    WORDs    model number
  2272.         no model number if first word is 0000h
  2273.         else blank-padded ASCII model string
  2274.  5Eh    WORD    read/write multiple support
  2275.         bits 7-0: maximum number of sectors per block supported
  2276.             00h if read/write multiple not supported
  2277.  60h    WORD    reserved (0)
  2278.         able to do doubleword transfers if nonzero ???
  2279.  62h    WORD    capabilities (see #P088)
  2280.  64h    WORD    security mode
  2281.         bit 15: security-mode feature set supported
  2282.         bits 14-8: maximum number of passwords supported
  2283.  66h    WORD    PIO data transfer cycle timing
  2284.  68h    WORD    single-word DMA data transfer cycle timing
  2285.  6Ah    WORD    field validity
  2286.         bit 0: offsets 6Ch-73h valid
  2287.         bit 1: offsets 80h-8Dh valid
  2288.  6Ch    WORD    logical cylinders in current translation mode
  2289.  6Eh    WORD    logical heads in current translation mode
  2290.  70h    WORD    logical sectors per track in current translation mode
  2291.  72h  2    WORDs    current capacity in sectors (excluding device-specific uses)
  2292.  76h    WORD    multiple-sector count for read/write multiple command
  2293.  78h  2    WORDs    total number of user-addressable sectors (LBA mode)
  2294.         00000000h if LBA mode not supported
  2295.  7Ch    WORD    single-word DMA transfer modes
  2296.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2297.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2298.  7Eh    WORD    multiword DMA transfer
  2299.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2300.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2301.  80h    WORD    supported flow control PIO transfer modes
  2302.  82h    WORD    minimum multiword DMA transfer cycle time
  2303.  84h    WORD    recommended multiword DMA cycle time
  2304.  86h    WORD    minimum non-flow-control PIO transfer cycle time
  2305.  88h    WORD    minimum PIO transfer cycle time with IORDY
  2306.  8Ah  2 WORDs    reserved for future PIO modes (0)
  2307.  8Eh 58 WORDs    reserved (0)
  2308. 100h 32 WORDs    vendor-specific
  2309. 140h 96 WORDs    reserved (0)
  2310. SeeAlso: #P089
  2311.  
  2312. Bitfields for IDE capabilities:
  2313. Bit(s)    Description    (Table P088)
  2314.  13    Standby Timer values used according to ATA standard
  2315.  11    IORDY supported
  2316.  10    device can disable use of IORDY
  2317.  9    LBA mode supported
  2318.  8    DMA supported
  2319. SeeAlso: #P087
  2320.  
  2321. Format of ATAPI Identify Information:
  2322. Offset    Size    Description    (Table P089)
  2323.  00h    WORD    general configuration (see #P090)
  2324.  14h 10 WORDs    serial number
  2325.         no serial number if first word is 0000h
  2326.         else blank-padded ASCII serial number
  2327.  28h  3 WORDs    vendor-specific
  2328.  2Eh  4    WORDs    firmware revision
  2329.         no revision number if first word is 0000h
  2330.         else blank-padded ASCII revision number
  2331.  36h 20    WORDs    model number
  2332.         no model number if first word is 0000h
  2333.         else blank-padded ASCII model string
  2334.  5Eh    WORD    vendor-specific
  2335.  60h    WORD    reserved (0)
  2336.  62h    WORD    capabilities (see #P088)
  2337.  64h    WORD    security mode???
  2338.  66h    WORD    PIO data transfer cycle timing
  2339.  68h    WORD    single-word DMA data transfer cycle timing
  2340.  6Ah    WORD    field validity
  2341.         bit 0: offsets 6Ch-73h valid
  2342.         bit 1: offsets 80h-8Dh valid
  2343.  6Ch    WORD    ??? logical cylinders in current translation mode
  2344.  6Eh    WORD    ??? logical heads in current translation mode
  2345.  70h    WORD    ??? logical sectors per track in current translation mode
  2346.  72h  2    WORDs    ??? current capacity in sectors
  2347.  76h    WORD    ??? multiple-sector count for read/write multiple command
  2348.  78h  2    WORDs    ??? total number of user-addressable sectors (LBA mode)
  2349.  7Ch    WORD    single-word DMA transfer modes
  2350.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2351.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2352.  7Eh    WORD    multiword DMA transfer
  2353.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2354.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2355.  80h    WORD    supported flow control PIO transfer modes
  2356.  82h    WORD    minimum multiword DMA transfer cycle time
  2357.  84h    WORD    recommended multiword DMA cycle time
  2358.  86h    WORD    minimum non-flow-control PIO transfer cycle time
  2359.  88h    WORD    minimum PIO transfer cycle time with IORDY
  2360.  8Ah  2 WORDs    reserved for future PIO modes (0)
  2361.  8Eh    WORD    typical time for release when processing overlapped CMD in
  2362.           microseconds
  2363.  90h    WORD    ???
  2364.  92h    WORD    major ATAPI version number
  2365.  94h    WORD    minor ATAPI version number
  2366.  96h 54 WORDs    reserved (0)
  2367. 100h 32 WORDs    vendor-specific
  2368. 140h 96 WORDs    reserved (0)
  2369. SeeAlso: #P087
  2370.  
  2371. Bitfields for ATAPI General Configuration:
  2372. Bit(s)    Description    (Table P090)
  2373.  15-14    device type
  2374.  13    reserved
  2375.  12    device present
  2376.  7    device is removable
  2377.  6-5    CMD DMA Request type
  2378.     00 microprocessor DRQ
  2379.     01 interrupt DRQ
  2380.     10 accelerated DRQ
  2381.     11 reserved
  2382.  4-2    reserved
  2383.  1-0    CMD packet size (00 = 12 bytes, 01 = 16 bytes)
  2384. SeeAlso: #P089
  2385. ----------P01F8------------------------------
  2386. PORT 01F8 - ???
  2387.  
  2388. 01F8  RW  ???
  2389.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  2390. ----------P01F901FF--------------------------
  2391. PORT 01F9-01FF - PC radio by CoZet Info Systems
  2392. Range:    The I/O address range is dipswitch selectable from:
  2393.        038-03F and 0B0-0BF
  2394.        078-07F and 0F0-0FF
  2395.        138-13F and 1B0-1BF
  2396.        178-17F and 1F0-1FF
  2397.        238-23F and 2B0-2BF
  2398.        278-27F and 2F0-2FF
  2399.        338-33F and 3B0-3BF
  2400.        378-37F and 3F0-3FF
  2401. Notes:    All of these addresses show a readout of FFh in initial state.
  2402.     Once started, all of the addresses show    FBh, whatever might happen.
  2403. --------d-P0200------------------------------
  2404. PORT 0200 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  2405. SeeAlso: PORT 0300h"Digidesign"
  2406. ----------P0200020F--------------------------
  2407. PORT 0200-020F - Game port reserved I/O address space  
  2408. 0200-0207 - Game port, eight identical addresses on some boards
  2409.  
  2410. 0201  R-  read joystick position and status (see #P091)
  2411. 0201  -W  fire joystick's four one-shots
  2412. 0201  RW  gameport on mc-soundmachine, mc 03-04/1992: Adlib-compatible,
  2413.         Covox 'voice master' & 'speech thing' compatible soundcard.
  2414.         (enabled if bit1=1 in PORT 038Fh. Because it is disabled on
  2415.         power-on, it cannot be found by BIOS) (see PORT 0388h-038Fh)
  2416.  
  2417. Bitfields for joystick position and status:
  2418. Bit(s)    Description    (Table P091)
  2419.  7    status B joystick button 2 / D paddle button
  2420.  6    status B joystick button 1 / C paddle button
  2421.  5    status A joystick button 2 / B paddle button
  2422.  4    status A joystick button 1 / A paddle button
  2423.  3    B joystick Y coordinate       / D paddle coordinate
  2424.  2    B joystick X coordinate       / C paddle coordinate
  2425.  1    A joystick Y coordinate       / B paddle coordinate
  2426.  0    A joystick X coordinate       / A paddle coordinate
  2427. ----------P020002FF--------------------------
  2428. PORT 0200-02FF - Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  2429. Range:    4 bit DIP switch installable in the range 20x-2Fx
  2430.  
  2431. 0200-0203    adresses of the 8255 on the uPW48
  2432. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  2433. ----------P02080209--------------------------
  2434. PORT 0208-0209 - Intel 82C212B "Neat" chipset - EMS emulation control
  2435. Range:    may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, 02E8
  2436. ----------P020C020F--------------------------
  2437. PORT 020C-020F - AIMS LAB PC Radio
  2438. Range:    configurable to 020C or 030C
  2439. ----------P02100217--------------------------
  2440. PORT 0210-0217 - Expansion unit (XT)
  2441.  
  2442. 0210  -W  latch expansion bus data
  2443. 0210  R-  verify expansion bus data
  2444. 0211  -W  clear wait, test latch
  2445. 0211  R-  High byte data address
  2446. 0212  R-  Low byte data address
  2447. 0213  -W  0=enable,  1=disable expansion unit
  2448. 0214  -W  latch data  (receiver card port)
  2449. 0214  R-  read data   (receiver card port)
  2450. 0215  R-  High byte of address, then Low byte    (receiver card port)
  2451. ----------P02100211--------------------------
  2452. PORT 0210-0211 - Game Blaster
  2453. Range:    PORT 02x0h-02x1h, x=1,2,...
  2454.  
  2455. 0210  -W  register index
  2456. 0211  ?W  register data
  2457. ----------P02180219--------------------------
  2458. PORT 0218-0219 - Intel 82C212B "Neat" chipset - EMS emulation control
  2459. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2460. ----------P02200223--------------------------
  2461. PORT 0220-0223 - Sound Blaster / Adlib port (Stereo)
  2462. SeeAlso: PORT 0388h-0389h
  2463.  
  2464. 0220  R-  Left speaker -- Status port
  2465. 0220  -W  Left speaker -- Address port
  2466. 0221  -W  Left speaker -- Data port
  2467. 0222  R-  Right speaker -- Status port
  2468. 0222  -W  Right speaker -- Address port
  2469. 0223  -W  Right speaker -- Data port
  2470. ----------P02200227--------------------------
  2471. PORT 0220-0227 - Soundblaster PRO and SSB 16 ASP
  2472. ----------P0220022F--------------------------
  2473. PORT 0220-022F - Soundblaster PRO 2.0
  2474. ----------P0220022F--------------------------
  2475. PORT 0220-022F - Soundblaster PRO 4.0
  2476. Note:    the FM music is accessible on 0388/0389 for compatibility.
  2477.  
  2478. 0220  R-  left FM status port
  2479. 0220  -W  left FM music register address port (index)
  2480. 0221  RW  left FM music data port
  2481. 0222  R-  right FM status port
  2482. 0222  -W  right FM music register address port (index)
  2483. 0223  RW  right FM music data port
  2484. 0224  -W  mixer register address port (index)
  2485. 0225  RW  mixer data port
  2486. 0226  -W  DSP reset
  2487. 0228  R-  FM music status port
  2488. 0228  -W  FM music register address port (index)
  2489. 0229  -W  FM music data port
  2490. 022A  R-  DSP read data (voice I/O and Midi)
  2491. 022C  -W  DSP write data / write command
  2492. 022C  R-  DSP write buffer status (bit 7)
  2493. 022E  R-  DSP data available status (bit 7)
  2494. ----------P022B------------------------------
  2495. PORT 022B - GI1904 Scanner Interface Adapter
  2496. Range:    PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  2497. Range:    PORT 03ABh, PORT 03EBh
  2498. ----------P022C------------------------------
  2499. PORT 022C - GS-IF Scanner Interface adapter
  2500. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2501.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2502. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2503.       others use this interface
  2504. ----------P022F------------------------------
  2505. PORT 022F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  2506. Note:    An Adlib-compatible Covox 'voice master' & 'speech thing' compatible
  2507.       soundcard
  2508. SeeAlso: PORT 0378h"Covox",PORT 0388h-038Fh"soundmachine"
  2509.  
  2510. 022F  RW  Covox compatible speech I/O  (via internal A/D converter,
  2511.         each read access starts a new conversion cycle)
  2512.         register enabled if bit7=1 in PORT 038Fh
  2513. ----------P02300233--------------------------
  2514. PORT 0230-0233 - Adaptec 154xB/154xC SCSI adapter.
  2515.         alternate address at 0130, 0134, 0230, 0330 and 0334
  2516. ----------P02340237--------------------------
  2517. PORT 0234-0237 - Adaptec 154xB/154xC SCSI adapter.
  2518.         alternate address at 0130, 0134, 0230, 0330 and 0334
  2519. ----------P0238023F--------------------------
  2520. PORT 0238-023F - COM port addresses on UniRAM card by German magazine c't
  2521.         selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  2522. ----------P0238023x--------------------------
  2523. PORT 0238-023x - Bus Mouse Port (secondary address)
  2524. Note:    secondary address for bus mice from MS and Logitech, and the ATI
  2525.       video adapter mouse
  2526. ----------P023C023x--------------------------
  2527. PORT 023C-023x - Bus Mouse Port (primary address)
  2528. Note:    primary address for bus mice from MS and Logitech, the ATI video
  2529.       adapter mouse, and the Commodore PC30III bus mouse
  2530. ----------P0240024F--------------------------
  2531. PORT 0240-024F - Gravis Ultra Sound by Advanced Gravis
  2532. Range:    The I/O address range is dipswitch selectable from:
  2533.        0200-020F and 0300-030F
  2534.        0210-021F and 0310-031F
  2535.        0220-022F and 0320-032F
  2536.        0230-023F and 0330-033F
  2537.        0240-024F and 0340-034F
  2538.        0250-025F and 0350-035F
  2539.        0260-026F and 0360-036F
  2540.        0270-027F and 0370-037F
  2541. SeeAlso: PORT 0340h-034Fh,PORT 0746h
  2542.  
  2543. 0240  -W  Mix Control register (see #P092)
  2544. 0241  R-  Read Data
  2545. 0241  -W  Trigger Timer
  2546. 0246  R-  IRQ Status Register (see #P093)
  2547. 0248  RW  Timer Control Reg
  2548.       Same as ADLIB Board (see PORT 0200h)
  2549. 0249  -W  Timer Data (see #P094)
  2550. 024B  -W  IRQ Control Register (0240 bit 6 = 1) (see #P095)
  2551. 024B  -W  DMA Control Register (0240 bit 6 = 0) (see #P096)
  2552. 024F  RW  Register Controls (rev 3.4+)
  2553.  
  2554. Bitfields for Gravis Ultra Sound mix control register:
  2555. Bit(s)    Description    (Table P092)
  2556.  6       Control Register Select (see 024B)
  2557.  5       Enable MIDI Loopback
  2558.  4       Combine GF1 IRQ with MIDI IRQ
  2559.  3       Enable Latches
  2560.  2       Enable MIC IN
  2561.  1       Disable LINE OUT
  2562.  0       Disable LINE IN
  2563. SeeAlso: #P093
  2564.  
  2565. Bitfields for Gravis Ultra Sound IRQ status register:
  2566. Bit(s)    Description    (Table P093)
  2567.  7       DMA TC IRQ
  2568.  6       Volume Ramp IRQ
  2569.  5       WaveTable IRQ
  2570.  3       Timer 2 IRQ
  2571.  2       Timer 1 IRQ
  2572.  1       MIDI Receive IRQ
  2573.  0       MIDI Transmit IRQ
  2574. SeeAlso: #P092,#P095,#P096
  2575.  
  2576. Bitfields for Gravis Ultra Sound timer data:
  2577. Bit(s)    Description    (Table P094)
  2578.  7       Reset Timr IRQ
  2579.  6       Mask Timer 1
  2580.  5       Mask Timer 2
  2581.  1       Timer 2 Start
  2582.  0       Timer 1 Start
  2583. SeeAlso: #P093,#P095
  2584.  
  2585. Bitfields for Gravis Ultra Sound IRQ control register:
  2586. Bit(s)    Description    (Table P095)
  2587.  6    Combine Both IRQ
  2588.  5-3    MIDI IRQ Selector
  2589.     000  No IRQ
  2590.     001  IRQ 2
  2591.     010  IRQ 5
  2592.     011  IRQ 3
  2593.     100  IRQ 7
  2594.     101  IRQ 11
  2595.     110  IRQ 12
  2596.     111  IRQ 15
  2597.  2-0    GF1 IRQ Selector
  2598.     000  No IRQ
  2599.     001  IRQ 2
  2600.     010  IRQ 5
  2601.     011  IRQ 3
  2602.     100  IRQ 7
  2603.     101  IRQ 11
  2604.     110  IRQ 12
  2605.     111  IRQ 15
  2606. SeeAlso: #P093,#P096
  2607.  
  2608. Bitfields for Gravis Ultra Sound DMA Control Register:
  2609. Bit(s)    Description    (Table P096)
  2610.  6    Combine Both DMA
  2611.  5-3    DMA Select Register 2
  2612.     000  No DMA
  2613.     001  DMA 1
  2614.     010  DMA 3
  2615.     011  DMA 5
  2616.     100  DMA 6
  2617.     101  DMA 7 
  2618.  2-0    DMA Select Register 1
  2619.     000  No DMA
  2620.     001  DMA 1
  2621.     010  DMA 3
  2622.     011  DMA 5
  2623.     100  DMA 6
  2624.     101  DMA 7 
  2625. SeeAlso: #P093,#P095,#P100
  2626. ----------P02400257--------------------------
  2627. PORT 0240-0257 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  2628.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  2629. ----------P02580259--------------------------
  2630. PORT 0258-0259 - Intel 82C212B "Neat" chipset - EMS emulation control
  2631. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2632. ----------P02580259--------------------------
  2633. PORT 0258-0259 - AT RAMBANK Memory Expansion Board - EXT MEMORY AND EMS-SUPPORT
  2634. Range:    base address may be set to 0218h, 0228h, 0238h, 0258h, 0268h, 0298h,
  2635.       or 02A8h
  2636. ----------P0258025F--------------------------
  2637. PORT 0258-025F - Intel Above Board
  2638. ----------P02600268--------------------------
  2639. PORT 0260-0268    -  LPT port address on the UniRAM card by German magazine c't
  2640.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  2641. ----------P02680269--------------------------
  2642. PORT 0268-0269 - Intel 82C212B "Neat" chipset - EMS emulation control
  2643. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2644. ----------P026B------------------------------
  2645. PORT 026B - GI1904 Scanner Interface Adapter
  2646. Range:    PORT 022Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  2647. Range:    PORT 03ABh, PORT 03EBh
  2648. ----------P026C------------------------------
  2649. PORT 026C - GS-IF Scanner Interface adapter
  2650. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2651.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2652. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2653.       others use this interface
  2654. ----------P026E026F--------------------------
  2655. PORT 026E-026F - Dell Enhanced Parallel Port
  2656. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 0398h
  2657.  
  2658. 026E  -W  index for data port
  2659. 026F  RW  EPP command data
  2660. ----------P0278------------------------------
  2661. PORT 0278 - Covox 'Speech Thing' COMPATIBLES
  2662. SeeAlso: PORT 022Fh"Covox",PORT 0388h-038Fh"soundmachine"
  2663.  
  2664. 0278  -W  speech data output via printer data port
  2665.         (with mc-soundmachine, enabled if bit5=1 in 38F)
  2666. ----------P0278027E--------------------------
  2667. PORT 0278-027E - parallel printer port, same as 0378 and 03BC
  2668.  
  2669. 0278  -W  data port
  2670. 0279  Rw  status port
  2671. 027A  RW  control port
  2672. ----------P0279------------------------------
  2673. PORT 0279 - Plug-and-Play - CONFIGURATION REGISTER
  2674. SeeAlso: PORT 0A79h
  2675.  
  2676. 0279  -W  index into Plug-and-Play register set for Read Data Port and
  2677.       Write Data Port I/O (see #P097,#P098)
  2678.  
  2679. (Table P097)
  2680. Values for Plug-and-Play Card-Level Registers:
  2681.  00h    set Read Port address
  2682.     bits 9-2 of Read Data port address (bits 15-10 are always 0, bits 1-0
  2683.       are always 11); valid Read Port addresses are 0203h-03FFh
  2684.  01h    serial isolation
  2685.  02h    configuration control
  2686.  03h    Wake command
  2687.     (specifies which card is accessed through configuration registers)
  2688.  04h    resource data
  2689.  05h    status
  2690.  06h    Card Select Number (CSN)
  2691.  07h    logical device number
  2692.     (selects which logical device on card is accessed at locations 30h-FFh)
  2693.     (see #P098)
  2694.  08h-1Fh reserved
  2695.  20h-2Fh vendor-specific
  2696. Note:    there is one set of these registers per installed card
  2697. SeeAlso: #P098
  2698.  
  2699. (Table P098)
  2700. Values for Plug-and-Play Logical Device Registers:
  2701.  30h    activate
  2702.     bit 0: device is active on ISA bus
  2703.     bits 7-1: reserved (0)
  2704.  31h    I/O range check
  2705.     bit 0: I/O Read Pattern select (if bit 1 set, then I/O reads return
  2706.         55h if this bit is set, AAh if this bit is clear)
  2707.     bit 1: I/O Range Check Enable: if set, all reads from device I/O
  2708.           registers return 55h or AAh, depending on bit 0
  2709.     bits 7-2: reserved (0)
  2710.  32h-37h reserved
  2711.  38h-3Fh vendor-specific
  2712.  40h-44h 24-bit ISA memory descriptor 0
  2713.  45h-47h reserved
  2714.  48h-4Ch 24-bit ISA memory descriptor 1
  2715.  4Dh-4Fh reserved
  2716.  50h-54h 24-bit ISA memory descriptor 2
  2717.  55h-57h reserved
  2718.  58h-5Ch 24-bit ISA memory descriptor 3
  2719.  5Dh-5Fh reserved
  2720.  60h-6Fh I/O configuration registers 0-7
  2721.  70h-71h IRQ channel select 0
  2722.  72h-73h IRQ channel select 1
  2723.  74h-75h DMA configuration registers 0-1
  2724.  76h-7Eh 32-bit memory range configuration register 0
  2725.  7Fh     reserved
  2726.  80h-88h 32-bit memory range configuration register 1
  2727.  89h-8Fh reserved
  2728.  90h-98h 32-bit memory range configuration register 2
  2729.  99h-9Fh reserved
  2730.  A0h-A8h 32-bit memory range configuration register 3
  2731.  A9h-EFh reserved for logical device configuration
  2732.  F0h-FEh vendor-specific
  2733.  FFh    reserved
  2734. Note:    there is one set of these registers per logical device
  2735. SeeAlso: #P097
  2736. ----------P0280------------------------------
  2737. PORT 0280 - LCD display on Wyse 2108 PC
  2738. ----------P02800288--------------------------
  2739. PORT 0280-0288    - non-standard COM port addresses (V20-XT by German magazine c't)
  2740.         selectable from 0280, 0288, 0290, 0298, 6A0, 6A8
  2741. ----------P0288028F--------------------------
  2742. PORT 0288-028F    - non-standard COM port addresses (V20-XT by German magazine c't)
  2743. 0280-0288    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  2744. 0290-0298
  2745. 0298-029F
  2746. ----------P02A002A7--------------------------
  2747. PORT 02A0-02A7 - Sunshine EW-901BN, EW-904BN
  2748.         EPROM writer card (release 1986) for EPROMs up to 27512
  2749. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  2750. ----------P02A202A3--------------------------
  2751. PORT 02A2-02A3 - MSM58321RS clock
  2752. ----------P02A802A9--------------------------
  2753. PORT 02A8-02A9 - Intel 82C212B "Neat" chipset - EMS emulation control
  2754. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2755. ----------P02AB------------------------------
  2756. PORT 02AB - GI1904 Scanner Interface Adapter (default)
  2757. Range:    PORT 022Bh, PORT 026Bh, PORT 02EBh, PORT 032Bh, PORT 036Bh
  2758. Range:    PORT 03ABh, PORT 03EBh
  2759. Note:    the GI1904 is used by many SPI 400/800dpi gray/halftone/color handy
  2760.       scanners by Marstek, Mustek, Conrad, Völkner and others
  2761. ----------P02AC------------------------------
  2762. PORT 02AC - GS-IF Scanner Interface adapter
  2763. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2764.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2765. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2766.       others use this interface
  2767. ----------P02B002BF--------------------------
  2768. PORT 02B0-02BF - Trantor SCSI adapter
  2769. ----------P02B002DF--------------------------
  2770. PORT 02B0-02DF - alternate EGA,    primary EGA at 03C0
  2771. ----------P02B802B9--------------------------
  2772. PORT 02B8-02B9 - Intel 82C212B "Neat" chipset - EMS emulation control
  2773. Range: base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2774. ----------P02C002Cx--------------------------
  2775. PORT 02C0-02Cx - AST-clock
  2776. ----------P02C002DF--------------------------
  2777. PORT 02C0-02DF - XT-Real Time Clock 2 (default jumpered address)
  2778. ----------P02E002E8--------------------------
  2779. PORT 02E0-02E8 - LPT port address on the UniRAM card by German magazine c't
  2780. Range:    base address selectable from 0260, 02E0, 02E8, 02F0, 03E0, and 03E8.
  2781. ----------P02E002EF--------------------------
  2782. PORT 02E0-02EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2783.         (GAB 0 on XT)
  2784. 02E1  ??  GPIB (adapter 0)
  2785. 02E2
  2786. 02E3
  2787. ----------P02E002EF--------------------------
  2788. PORT 02E0-02EF - data aquisition     (AT)
  2789.  
  2790. 02E2  ??  data aquisition (adapter 0)
  2791. 02E3  ??  data aquisition (adapter 0)
  2792. ----------P02E8------------------------------
  2793. PORT 02E8 - S3 86C928 video controller (ELSA Winner 1000)
  2794. ----------P02E802E9--------------------------
  2795. PORT 02E8-02E9 - Intel 82C212B "Neat" chipset - EMS emulation control
  2796. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2797. ----------P02E802EF--------------------------
  2798. PORT 02E8-02EF - serial port, same as 02F8, 03E8 and 03F8 (COM4)
  2799. ----------P02E802EF--------------------------
  2800. PORT 02E8-02EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  2801.  
  2802. 02E8  R-  display status
  2803. 02E8  -W  horizontal total
  2804. 02EA  RW  Lookup: DAC mask
  2805. 02EB  -W  Lookup: DAC read index
  2806. 02EC  -W  Lookup: DAC write index
  2807. 02ED  RW  Lookup: DAC data
  2808. ----------P02EA------------------------------
  2809. PORT 02EA - S3 86C928 video controller (ELSA Winner 1000)
  2810. ----------P02EB------------------------------
  2811. PORT 02EB - GI1904 Scanner Interface Adapter
  2812. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 032Bh, PORT 036Bh,
  2813.       PORT 03ABh, PORT 03EBh
  2814. ----------P02EC------------------------------
  2815. PORT 02EC - GS-IF Scanner Interface adapter
  2816. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2817.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2818. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2819.       others use this interface
  2820. ----------P02F002F8--------------------------
  2821. PORT 02F0-02F8 - LPT port address on the UniRAM card by German magazine c't
  2822.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  2823. ----------P02F802FF--------------------------
  2824. PORT 02F8-02FF - serial port, same as 02E8, 03E8 and 03F8 (COM2)
  2825.  
  2826. 02F8  -W  transmitter holding register
  2827. 02F8  R-  receiver buffer register
  2828. 02F8  RW  divisor latch, low byte    when DLAB=1
  2829. 02F9  RW  divisor latch, high byte    when DLAB=1
  2830. 02F9  RW  interrupt enable register when DLAB=0
  2831. 02FA  R-  interrupt identification register
  2832. 02FB  RW  line control register
  2833. 02FC  RW  modem control register
  2834. 02FD  R-  line status register
  2835. 02FF  RW  scratch register
  2836. ----------P0300------------------------------
  2837. PORT 0300 - Award POST Diagnostic
  2838. --------d-P0300------------------------------
  2839. PORT 0300 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  2840. SeeAlso: PORT 0200h"Digidesign"
  2841. ----------P03000301--------------------------
  2842. PORT 0300-0301 - Soundblaster 16 ASP MPU-Midi
  2843. ----------P0300????--------------------------
  2844. PORT 0300-???? - HP IEC/HP-IB adapter (e.g. for use with tape streamer HP9142)
  2845. ----------P0300031F--------------------------
  2846. PORT 0300-031F - 3com Ethernet adapters (default address)
  2847. ----------P0300????--------------------------
  2848. PORT 0300-???? - NE2000 compatible Ethernet adapters
  2849. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h
  2850. ----------P03000303--------------------------
  2851. PORT 0300-0303 - Panasonic 52x CD-ROM SCSI Miniport
  2852. Range:    PORT 0300h-0303h,PORT 0320h-0323h,PORT 0340h-0343h,PORT 0360h-0363h,
  2853.       and PORT 0380h-0383h
  2854. ----------P0300030F--------------------------
  2855. PORT 0300-030F - Philips CD-ROM player CM50
  2856. ----------P0300030F--------------------------
  2857. PORT 0300-030F - CompaQ Tape drive adapter. alternate address at 0100
  2858. ----------P0300031F--------------------------
  2859. PORT 0300-031F - prototype cards
  2860.         Periscope hardware debugger
  2861. ----------P030C030F--------------------------
  2862. PORT 030C-030F - AIMS LAB PC Radio
  2863.  
  2864.     configurable to 020C or 030C
  2865. ----------P0310031F--------------------------
  2866. PORT 0310-031F - Philips CD-ROM player CM50
  2867. ----------P03200323--------------------------
  2868. PORT 0320-0323 - XT HDC 1   (Hard Disk Controller)
  2869. SeeAlso: PORT 01F0h-01F7h
  2870.  
  2871. 0320  RW  data register
  2872. 0321  -W  reset controller
  2873. 0321  R-  read controller hardware status (see #P099)
  2874. 0322  R-  read DIPswitch setting on XT controller card
  2875. 0322  -W  generate controller-select pulse
  2876. 0323  -W  write pattern to DMA and INT mask register
  2877.  
  2878. Bitfields for XT hard disk controller hardware status:
  2879. Bit(s)    Description    (Table P099)
  2880.  7-6    always 0
  2881.  5    logical unit number
  2882.  4-2    always 0
  2883.  1    error occurred
  2884.  0    always 0 
  2885. ----------P03240327--------------------------
  2886. PORT 0324-0327 - XT HDC 2   (Hard Disk Controller)
  2887. ----------P0328032B--------------------------
  2888. PORT 0328-032B - XT HDC 3   (Hard Disk Controller)
  2889. ----------P032B------------------------------
  2890. PORT 032B - GI1904 Scanner Interface Adapter
  2891. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 036Bh,
  2892.       PORT 03ABh, PORT 03EBh
  2893. ----------P032C------------------------------
  2894. PORT 032C - GS-IF Scanner Interface adapter
  2895. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2896.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2897. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2898.       others use this interface
  2899. ----------P032C032F--------------------------
  2900. PORT 032C-032F - XT HDC 4   (Hard Disk Controller)
  2901. ----------P03300331--------------------------
  2902. PORT 0330-0331 - MIDI interface
  2903. ----------P03300333--------------------------
  2904. PORT 0330-0333 - Adaptec 154xB/154xC SCSI adapter. default address.
  2905. Range:    alternate address at 0130, 0134, 0230, 0234 and 0334
  2906. ----------P0330033F--------------------------
  2907. PORT 0330-033F - CompaQ SCSI adapter. alternate address at 0130
  2908. ----------P0330033F--------------------------
  2909. PORT 0330-033F - Philips CD-ROM player CM50
  2910. ----------P03340337--------------------------
  2911. PORT 0334-0337 - Adaptec 154xB/154xC SCSI adapter.
  2912. Range:    alternate address at 0130, 0134, 0230, 0234 and 0330
  2913. ----------P0338------------------------------
  2914. PORT 0338 - AdLib soundblaster card
  2915. ----------P0338033F--------------------------
  2916. PORT 0338-033F - COM port addresses on UniRAM card by German magazine c't
  2917. Range:    selectable from 0238, 02E8, 02F8, 0338, 03E0, 03E8, 03F8
  2918. ----------P0340034F--------------------------
  2919. PORT 0340-034F - Philips CD-ROM player CM50
  2920. ----------P0340034F--------------------------
  2921. PORT 0340-034F - SCSI (1st Small Computer System Interface) adapter
  2922. Note:    alternate address at 0140-014F
  2923. ----------P0340034F--------------------------
  2924. PORT 0340-034F - Gravis Ultra Sound by Advanced Gravis
  2925. Range: The I/O address range is dipswitch selectable from:
  2926.        0200-020F and 0300-030F
  2927.        0210-021F and 0310-031F
  2928.        0220-022F and 0320-032F
  2929.        0230-023F and 0330-033F
  2930.        0240-024F and 0340-034F
  2931.        0250-025F and 0350-035F
  2932.        0260-026F and 0360-036F
  2933.        0270-027F and 0370-037F
  2934. SeeAlso: PORT 0240h-024Fh,PORT 0746h
  2935.    
  2936. 0340  -W  MIDI Control (see #P100)
  2937. 0340  R-  MIDI Status (see #P101)
  2938. 0341  -W  MIDI Transmit Data
  2939. 0341  R-  MIDI Receive Data
  2940. 0342  RW  GF1 Page Register / Voice Select
  2941. 0343  RW  GF1/Global Register Select (see #P102)
  2942. 0344  RW  GF1/Global Data Low Byte (16 bits)
  2943. 0345  RW  GF1/Global Data High Byte (8 bits)
  2944. 0346  -W  Mixer Data Port
  2945. 0347  RW  GF1 DRAM
  2946.          Direct Read Write at Loction pointed with regs 43 and 44
  2947.  
  2948. Bitfields for Gravis Ultra Sound MIDI control register:
  2949. Bit(s)    Description    (Table P100)
  2950.  7       Receive IRQ (1 = enabled)
  2951.  5-6   Xmit IRQ
  2952.  0-1   Master Reset (1 = enabled)
  2953. SeeAlso: #P093,#P095,#P101
  2954.  
  2955. Bitfields for Gravis Ultra Sound MIDI status register:
  2956. Bit(s)    Description    (Table P101)
  2957.  7    Interrupt pending
  2958.  5    Overrun Error
  2959.  4    Framing Error
  2960.  1    Transmit Register Empty
  2961.  0    Receive Register Empty
  2962. SeeAlso: #P100,#P102
  2963.    
  2964. (Table P102)
  2965. Values for Gravis Ultra Sound GF1/Global Registers:
  2966. ---Voice specific registers---
  2967.  00h  w        Voice Control (see #P103)
  2968.  01h  w        Frequency Control
  2969.          bit 15-10     Integer Portion
  2970.          bit 9-1     Fractional Portion
  2971.  02h  w        Start Address HIGH
  2972.          bit 12-0     Address Lines 19-7
  2973.  03h  w        Start Address LOW
  2974.          bit 15-9     Address Lines 6-0
  2975.          bit 8-5     Fractional Part of Start Address
  2976.  04h  w        End Address HIGH
  2977.          bit 12-0     Address Lines 19-7
  2978.  05h  w        End Address LOW
  2979.          bit 15-9     Address Lines 6-0
  2980.          bit 8-5     Fractional Part of End Address
  2981.  06h  w        Volume Ramp Rate
  2982.          bit 5-0     Amount added
  2983.          bit 7-6     Rate
  2984.  07h  w        Volume Ramp Start
  2985.          bit 7-4     Exponent
  2986.          bit 3-0     Mantissa
  2987.  08h  w        Volume Ramp End
  2988.          bit 7-4     Exponent
  2989.          bit 3-0     Mantissa
  2990.  09h  w        Current Volume
  2991.          bit 15-12     Exponent
  2992.          bit 11-4     Mantissa
  2993.  0Ah  w        Current Address HIGH
  2994.          bit 12-0     Address Lines 19-7
  2995.  0Bh  w        Current Address LOW
  2996.          bit 15-9     Address Lines 6-0
  2997.          bit 8-0     Fractional Position
  2998.  0Ch  w        Pan Position
  2999.          bit 3-0     Pan Postion
  3000.  0Dh  w        Volume Control (see #P104)
  3001.  0Eh  w        Active Voices
  3002.          bit 5-0     #Voices -1  (allowed 13 - 31)
  3003.  0Fh  w        IRQ Source Register (see #P105)
  3004. ---NOT voice specific---
  3005.  41h  r/w   DRAM DMA Control (see #P106)
  3006.  42h  w        DMA Start Address
  3007.          bits 15-0     DMA Address Lines 19-4
  3008.  43h  w        DRAM I/O Address LOW
  3009.  44h  w        DRAM I/O Address HIGH
  3010.          bits 0-3     Upper 4 Address Lines
  3011.  45h  r/w   Timer Control
  3012.          bit 3     Enable Timer 2
  3013.          bit 2     Enable Timer 1
  3014.  46h  w        Timer 1 Count (granularity of 80 micro sec)
  3015.  47h  w        Timer 2 Count (granulatity of 320 micro sec)
  3016.  48h  w        Sampling Frequency
  3017.          rate = 9878400 / (16 * (FREQ + 2))
  3018.  49h  r/w   Sampling Control (see #P107)
  3019.  4Bh  w        Joystick Trim DAC
  3020.  4Ch  r/w   RESET
  3021.          bit 2     GF1 Master IRQ Enable
  3022.          bit 1     DAC Enable
  3023.          bit 0     Master Reset
  3024. ---Voice specific registers---
  3025.  80h  r        Voice Control (see 00h)
  3026.  81h  r        Frequency Control (see 01h)
  3027.  82h  r        Start Address HIGH (see 02h)
  3028.  83h  r        Start Address LOW (see 03h)
  3029.  84h  r        End Address HIGH (see 04h)
  3030.  85h  r        End Address LOW (see 05h)
  3031.  86h  r        Volume Ramp Rate (see 06h)
  3032.  87h  r        Volume Ramp Start (see 07h)
  3033.  88h  r        Volume Ramp End (see 08h)
  3034.  89h  r        Current Volume (see 09h)
  3035.  8Ah  r        Current Address HIGH (see 0Ah)
  3036.  8Bh  r        Current Address LOW (see 0Bh)
  3037.  8Ch  r        Pan Position (see 0Ch)
  3038.  8Dh  r        Volume Control (see 0Dh)
  3039.  8Eh  r        Active Voices (see 0Eh)
  3040.  8Fh  r        IRQ Status (see 0Fh)
  3041. SeeAlso: #P101
  3042.  
  3043. Bitfields for Gravis Ultra Sound voice control global register:
  3044. Bit(s)    Description    (Table P103)
  3045.  7     IRQ pending
  3046.  6     Direction
  3047.  5     Enable WAVE IRQ
  3048.  4     Enable bi-directional Looping
  3049.  3     Enable Looping
  3050.  2     Size data (8/16 bits)
  3051.  1     Stop Voice
  3052.  0     Voice Stopped
  3053. SeeAlso: #P102,#P104
  3054.  
  3055. Bitfields for Gravis Ultra Sound volume control global register:
  3056. Bit(s)    Description    (Table P104)
  3057.  7     IRQ Pending
  3058.  6     Direction
  3059.  5     Enable Volume Ramp IRQ
  3060.  4     Enable bi-directional Looping
  3061.  3     Enable Looping
  3062.  2     Rollover Condition
  3063.  1     Stop Ramp
  3064.  0     Ramp Stopped
  3065. SeeAlso: #P102,#P103
  3066.  
  3067. Bitfields for Gravis Ultra Sound IRQ source register:
  3068. Bit(s)    Description    (Table P105)
  3069.  7     WaveTable IRQ pending
  3070.  6     Volume Ramp IRQ pending
  3071.  4-0     Voice Number
  3072. SeeAlso: #P102,#P103,#P106
  3073.  
  3074. Bitfields for Gravis Ultra Sound DRAM DMA control register:
  3075. Bit(s)    Description    (Table P106)
  3076.  7     Invert MSB
  3077.  6     Data Size (8/16 bits)
  3078.  5     DMA Pending
  3079.  3-4     DMA Rate Divider
  3080.  2     DMA Channel Width (8/16 bits)
  3081.  1     DMA Direction (1 = read)
  3082.  0     DMA Enable
  3083. SeeAlso: #P102,#P105
  3084.  
  3085. Bitfields for Gravis Ultra Sound sampling control register:
  3086. Bit(s)    Description    (Table P107)
  3087.  7     Invert MSB
  3088.  6     DMA IRQ pending
  3089.  5     DMA IRQ enable
  3090.  2     DMA width (8/16 bits)
  3091.  1     Mode (mone/stereo)
  3092.  0     Start Sampling
  3093. SeeAlso: #P102
  3094. ----------P03400357--------------------------
  3095. PORT 0340-0357 - RTC (1st Real Time Clock for XT)
  3096.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  3097. Range:    alternate at 0240-0257
  3098. SeeAlso:  PORT 0240h-0257h
  3099.  
  3100. 0340  RW  0.001 seconds        0-99
  3101. 0341  RW  0.1 and 0.01 seconds    0-99
  3102. 0342  RW  seconds        0-59
  3103. 0343  RW  minutes        0-59
  3104. 0343  RW  hours            0-23
  3105. 0345  RW  day of week        1-7
  3106. 0346  RW  day of month        1-31
  3107. 0347  RW  month            1-12
  3108. 0348  RW  RAM (upper nybble only)
  3109. 0349  RW  year            0-99
  3110. 034A  RW  RAM last month storage
  3111. 034B  RW  RAM year storage (-80)
  3112. 034C  RW  RAM reserved
  3113. 034D  RW  RAM not used
  3114. 034E  RW  RAM not used
  3115. 034F  RW  RAM not used
  3116. 0350  R-  interrupt status register
  3117. 0351  -W  interrupt control register
  3118. 0352  -W  counter reset
  3119. 0353  -W  RAM reset
  3120. 0354  R-  status bit
  3121. 0355  -W  GO command
  3122. 0356  ??  standby interrupt
  3123. 0357  ??  test mode
  3124. ----------P03480357--------------------------
  3125. PORT 0348-0357 - DCA 3278
  3126. ----------P034C034F--------------------------
  3127. PORT 034C-034F - Gravis UltraMax by Advanced Gravis
  3128. Range:    The I/O address range is dipswitch selectable from:
  3129.        0200-020F and 0300-030F
  3130.        0210-021F and 0310-031F
  3131.        0220-022F and 0320-032F
  3132.        0230-023F and 0330-033F
  3133.        0240-024F and 0340-034F
  3134.        0250-025F and 0350-035F
  3135.        0260-026F and 0360-036F
  3136.        0270-027F and 0370-037F
  3137. ----------P035A035B--------------------------
  3138. PORT 035A-035B - Adaptec AH1520 jumper settings
  3139.  
  3140. 035A  R      I/O channel setup (see #P108)
  3141. 035B  R      transfer mode setup (see #P109)
  3142.  
  3143. Bitfields for Adaptec AH1520 channel setup jumper settings:
  3144. Bit(s)    Description    (Table P108)
  3145.  7    SCSI parity disabled
  3146.  6-5    DMA channel (00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
  3147.  4-3    IRQ number (00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
  3148.  2-0    SCSI ID
  3149. SeeAlso: #P109
  3150.  
  3151. Bitfields for Adaptec AH1520 transfer mode setup jumper settings:
  3152. Bit(s)    Description    (Table P109)
  3153.  7    DMA transfer mode (clear for PIO)
  3154.  6    boot enabled
  3155.  5-4    boot type
  3156.     00 ???
  3157.     01 boot from floppy
  3158.     10 print configured options
  3159.     11 boot from hard disk
  3160.  3    enable sync negotiation
  3161.  2    enable target disconnection
  3162.  1-0    unused???
  3163. SeeAlso: #P108
  3164. ----------P035F------------------------------
  3165. PORT 035F - ARTEC Handyscanner A400Z.  alternate address at 15F.
  3166. ----------P03600367--------------------------
  3167. PORT 0360-0367 - PC network (XT only)
  3168. ----------P0360036F--------------------------
  3169. PORT 0360-036F - PC network (AT)
  3170. ----------P0360036F--------------------------
  3171. PORT 0360-036F - National Semiconductor DP8390(1)C/NS3249C network chipset
  3172. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  3173.       of 16 consecutive addresses, and provide a total of four pages of
  3174.       sixteen registers (see #P110,#P111,#P112,#P143)
  3175.  
  3176. (Table P110)
  3177. Values for NS DP8390C/NS3249C network chipset Page 0 registers:
  3178. Number    Read Register                Write Register
  3179.  00h    Command reg. (see #P114)    CR    Command reg.        CR
  3180.  01h    current local DMA address 0    CLDA0    page start reg.        PSTART
  3181.  02h    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  3182.  03h    boundary pointer        BNRY    boundary pointer    BNRY
  3183.  04h    transmit status reg.        TSR    Tx page start address    TPSR
  3184.  05h    number of collisions reg.    NCR    Tx byte count reg.0    TBCR0 
  3185.  06h    FIFO                    Tx byte count reg.1    TBCR1
  3186.  07h    interrupt status reg.        ISR    interrupt status reg.    ISR
  3187.  08h    current remote DMA address 0    CRDA0    remote start addr.reg.0 RSAR0
  3188.  09h    current remote DMA address 1    CRDA1    remote start addr.reg.1 RSAR1
  3189.  0Ah    reserved                remote byte count reg.0 RBCR0
  3190.  0Bh    reserved                remote byte count reg.1 RBCR1
  3191.  0Ch    receive status reg.        RSR    Rx configuration reg.    RCR
  3192.  0Dh    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  3193.  0Eh    tally counter 1 (CRC errors)    CNTR1    data configuration reg. DCR
  3194.  0Fh    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  3195. SeeAlso: #P111,#P112,#P113
  3196.  
  3197. (Table P111)
  3198. Values for NS DP8390C/NS3249C network chipset Page 1 registers:
  3199. Number    Read/Write
  3200.  00h    Command            CR (see #P114)
  3201.  01h    physical address reg.0    PAR0
  3202.  02h    physical address reg.1    PAR1        
  3203.  03h    physical address reg.2    PAR2        
  3204.  04h    physical address reg.3    PAR3        
  3205.  05h    physical address reg.4    PAR4        
  3206.  06h    physical address reg.5    PAR5        
  3207.  07h    current page reg.    CURR            
  3208.  08h    multicast address reg.0 MAR0        
  3209.  09h    multicast address reg.1 MAR1        
  3210.  0Ah    multicast address reg.2 MAR2        
  3211.  0Bh    multicast address reg.3 MAR3        
  3212.  0Ch    multicast address reg.4 MAR4        
  3213.  0Dh    multicast address reg.5 MAR5        
  3214.  0Eh    multicast address reg.6 MAR6        
  3215.  0Fh    multicast address reg.7 MAR7        
  3216. SeeAlso: #P110,#P112,#P113
  3217.  
  3218. (Table P112)
  3219. Values for NS DP8390C/NS3249C network chipset Page 2 registers:
  3220. Number    Read Register                Write Register
  3221.  00h    Command                CR    Command             CR
  3222.  01h    page start reg.            PSTART    current local DMA addr.0 CLDA0
  3223.  02h    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  3224.  03h    remote next packet pointer        remote next packet pointer
  3225.  04h    Tx page start address        TPSR    reserved
  3226.  05h    local next packet pointer        local next packet pointer
  3227.  06h    address counter (upper)            address counter (upper)
  3228.  07h    address counter (lower)            address counter (lower)
  3229.  08h    reserved                reserved
  3230.  09h    reserved                reserved
  3231.  0Ah    reserved                reserved
  3232.  0Bh    reserved                reserved
  3233.  0Ch    Rx configuration reg.        RCR    reserved
  3234.  0Dh    Tx configuration reg.        TCR    reserved
  3235.  0Eh    data configuration reg.        DCR    reserved
  3236.  0Fh    interrupt mask reg.        IMR    reserved
  3237. Note:    this is a diagnostics page, and should never be modfied under normal
  3238.       operation.
  3239. SeeAlso: #P110,#P111,#P113
  3240.  
  3241. (Table P113)
  3242. Values for NS DP8390C/NS3249C network chipset Page 3 registers:
  3243. Number    Read Register                Write Register
  3244.  00h    Command CR (see #P114)            Command CR
  3245. Note:    Test Page - should never be modified!
  3246. SeeAlso: #P110,#P111,#P112
  3247.  
  3248. Bitfields for NS DP8390C/NS3249C network chipset command register (00h):
  3249. Bit(s)    Description    (Table P114)
  3250.  0    software reset command (1=offline, 0=online)
  3251.  1    do not activate NIC after reset command
  3252.  2    start transmision of a packet
  3253.  3-5    remote DMA command
  3254.     000 not allowed
  3255.     001 remote read
  3256.     010 remote write
  3257.     011 send packet
  3258.     1xx abort/complete rmote DMA
  3259.  6-7    page select
  3260.     00 register page 0
  3261.     01 register page 1
  3262.     10 register page 2
  3263.     11 register page 3
  3264. SeeAlso: #P113 
  3265. ----------P036B------------------------------
  3266. PORT 036B - GI1904 Scanner Interface Adapter
  3267. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  3268.       PORT 03ABh, PORT 03EBh
  3269. ----------P036C------------------------------
  3270. PORT 036C - GS-IF Scanner Interface adapter
  3271. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  3272.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  3273. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  3274.       others use this interface
  3275. ----------P03700377--------------------------
  3276. PORT 0370-0377 - FDC 2    (2nd Floppy Disk Controller)    first FDC at 03F0
  3277. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  3278.       compatible), or an 82072 or 82077AA for perpendicular recording at
  3279.       2.88M
  3280. SeeAlso: PORT 03F0h-03F7h
  3281.  
  3282. 0370  R-  diskette Extra High Density controller board jumpers (AT)
  3283. 0370  R-  diskette controller status A (PS/2, PS/2 model 30)
  3284. 0371  R-  diskette controller status B (PS/2, PS/2 model 30)
  3285. 0372  -W  diskette controller DOR (Digital Output Register)
  3286. 0374  R-  diskette controller main status register
  3287. 0374  -W  diskette controller datarate select register
  3288. 0375  RW  diskette controller command/data register
  3289. 0376  RW  (2nd FIXED disk controller status/data register)
  3290. 0377  RW  (2nd FIXED disk controller drive address register)
  3291. 0377  R-  diskette controller DIR (Digital Input Register)
  3292. 0377  -W  select register for diskette data transfer rate
  3293. ----------P0378------------------------------
  3294. PORT 0378 - Covox 'Speech Thing' COMPATIBLE SPEECH OUTPUT
  3295. SeeAlso: PORT 022Fh"mc-soundmachine",PORT 0388h-038Fh"soundmachine"
  3296.  
  3297. 0378  -W  speech output via printer port
  3298.       (with mc-soundmachine, enabled if bit4=1 in 38F)
  3299. ----------P0378037A--------------------------
  3300. PORT 0378-037A - parallel printer port, same as 0278 and 03BC
  3301.  
  3302. 0378  -W  data port
  3303. 0379  RW  status port
  3304. 037A  RW  control port
  3305.  
  3306. 037B  ??  bit 7: shadow RAM on/off (UniRAM adapter,according to c't 7/90)
  3307. ----------P0380038F--------------------------
  3308. PORT 0380-038F - 2nd BSC (Binary Synchronous Communication) adapter
  3309. SeeAlso:  PORT 03A0h"BSC"
  3310. ----------P0380038C--------------------------
  3311. PORT 0380-038C - 2nd SDLC (Synchronous Data Link Control) adapter
  3312. Notes:    Initialization of the SDLC adapter is performed in a typical 
  3313.       sequence like this: Setup 8255 port A-C configuration by writing
  3314.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  3315.       to 382h. Reset 8273 internal registers by pulsing 8255 port B4.
  3316.       After this the 8253 has to be programmed to the desired values
  3317.       (counter 0 in mode 3). Now the 8273 is ready to be configured for
  3318.       the operating mode that defines the communication environment in
  3319.       which it will be used.
  3320.     Note on 8273: Each 8273 protocol controllers internal register is
  3321.       programmed by individual set/reset commands (via 388h) in
  3322.       conjunction with a parameter (via 389h) that give an OR/AND mask
  3323.       to the internal register value.
  3324.       Although the 8273 is a full duplex device, there is only one
  3325.       command register. Thus, the command register must be used for
  3326.       only one command sequence at a time and the transmitter and
  3327.       receiver may never be simultaneously in a command phase.
  3328.       The system software starts the command phase by writing a command
  3329.       byte into the command register. If further information is required
  3330.       by the 8273 prior to execution of the command, the system software
  3331.       must write the list of parameters into the parameter register.
  3332. SeeAlso: PORT 03A0h"SDLC"
  3333.  
  3334. 0380  R-   on adapter 8255(A5) port A: internal/external sensing (see #P115)
  3335. 0381  -W   on adapter 8255(A5) port B: external modem interface (see #P116)
  3336. 0382  RW   on adapter 8255(A5) port C: internal control (see #P117)
  3337. 0383  ?W   on adapter 8255(A5) mode initialization
  3338. 0384  RW   on adapter 8253 (programmable counter) counter 0:
  3339.         LSB / MSB square wave generator (input for timer 2, connected
  3340.           to 8255 bitC5)
  3341. 0385  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  3342.         (connected to 8255 bitA7, IRQ4 level)
  3343. 0386  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  3344.         (connected to 8255 bitA6, IRQ4 level)
  3345. 0387  ?W   on adapter 8253 mode register (see #P118)
  3346. 0388  R-   on adapter 8273 status register (see #P119)
  3347. 0388  -W   on adapter 8273 command register (see #P120)
  3348. 0389  R-   on adapter 8273 (immediate) result register (see #P127)
  3349. 0389  -W   on adapter 8273 parameter register
  3350.         Commands issued via PORT 0388h may need additional parameters,
  3351.           which have to be passed through this port (see table).
  3352. 038A  R-   on adapter 8273 transmit INT status (DMA/INT)
  3353. 038A  -W   on adapter 8274 reset
  3354. 038B  R-   on adapter 8273 receive INT status (DMA/INT)
  3355. 038C  -W   on adapter 8273 data: direct program control (DPC)
  3356.       scratch-pad
  3357.  
  3358. Bitfields for SDLC 8255 port A:
  3359. Bit(s)    Description    (Table P115)
  3360.  7    =1 timer 1 output active
  3361.  6    =1 timer 2 output active
  3362.  5    =1 modem status changed
  3363.  4    receive clock active (if pulsing)
  3364.  3    =0 clear to send is on from interface
  3365.  2    transmit clock active (if pulsing)
  3366.  1    =0 data carrier detect is on from interface
  3367.  0    =0 ring indicator is on from interface
  3368. SeeAlso: #P116,#P117
  3369.  
  3370. Bitfields for SDLC 8255 port B:
  3371. Bit(s)    Description    (Table P116)
  3372.  7    enable IRQ 4 level interrupt
  3373.  6    =1 gate timer 1
  3374.  5    =1 gate timer 2
  3375.  4    =1 reset 8273
  3376.  3    =1 reset modem status changed logic
  3377.  2    =0 turn on test
  3378.  1    =0 turn on select standby at modem interface
  3379.  0    =0 turn on data signal rate select at modem interface
  3380. SeeAlso: #P115,#P117
  3381.  
  3382. Bitfields for SDLC 8255 port C:
  3383. Bit(s)    Description    (Table P117)
  3384.  7 R-    =? not used (detection: =1 SDLC, =0 may be SDLC or BSC??)
  3385.  6 R-    =0 test indicate active
  3386.  5 R-    timer 0 output (if pulsing)
  3387.  4 R-    receive data (if pulsing)
  3388.  3 -W    =0 gate interrupts 3 and 4
  3389.  2 -W    =1 electronic wrap
  3390.  1 -W    =1 gate external clock
  3391.  0 -W    =1 gate internal clock
  3392. SeeAlso: #P115,#P116
  3393.  
  3394. Bitfields for SDLC 8253 mode register:
  3395. Bit(s)    Description    (Table P118)
  3396.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  3397.  5-4    RL1-RL0     00= couner latching operation
  3398.          01= read/load most significant byte (MSB)
  3399.          10= read/load least significant byte (LSB)
  3400.          11= read/load LSB first, then MSB
  3401.  3-1    M2-M0     000= mode 0
  3402.          001= mode 1
  3403.          x10= mode 2
  3404.          x11= mode 3
  3405.          100= mode 4
  3406.          101= mode 5
  3407.  0    BCD     0= binary counter 16bits
  3408.          1= BCD counter 4 decades
  3409.  
  3410. Bitfields for SDLC 8273 status register:
  3411. Bit(s)    Description    (Table P119)
  3412.  7    =1 command busy (CBSY)
  3413.  6    =1 command buffer full (CBF)
  3414.  5    =1 command parameter buffer full (CPBF)
  3415.  4    =1 command result buffer full (CRBF)
  3416.  3    =1 Rx interupt (RxINT)
  3417.  2    =1 Tx interupt (TxINT)
  3418.  1    =1 RxINT result available (RxIRA)
  3419.  0    =1 TxINT result available (TxIRA)
  3420. SeeAlso: #P120
  3421.  
  3422. (Table P120)
  3423. Values for SDCL 8273 command register:
  3424.  commands:           parameters:    results:   result port: int:
  3425.   A4: set one-bit delay        set mask     -           -    no
  3426.   64: reset one-bit delay   reset mask     -           -    no
  3427.   97: set data transfer        set mask     -           -    no
  3428.   57: reset data transfer   reset mask     -           -    no
  3429.   91: set operating mode    set mask     -           -    no
  3430.   51: reset operating mode  reset mask     -           -    no
  3431.   A0: set serial I/O mode   set mask     -           -    no
  3432.   60: reset serial I/O mode reset mask     -           -    no
  3433.   C0: general receive        B0,B1     RIC,R0,R1,A,C RXI/R   yes
  3434.   C1: selective receive        B0,B1,A1,A2     RIC,RD,R1,A,C RXI/R   yes
  3435.   C5: receive disable        -         -           -    no
  3436.   C8: transmit frame        L0, L1, A, C TIC           TXI/R   yes
  3437.   C9: transmit transparent  L0, L1     TIC           TXI/R   yes
  3438.   CC: abort transmit frame  -         TIC           TXI/R   yes
  3439.   CD: abort transmit        -         TIC           TXI/R   yes
  3440.   22: read 8273 port A        -         port value    result    no
  3441.   23: read 8273 port B        -         port value    result    no
  3442.   A3: set 8273 port A bit   set mask     -           -    no
  3443.   63: set 8273 port B bit   reset mask     -           -    no
  3444. Notes:    B0/B1 LSB/MSB of the receiver buffer length
  3445.     L0/L1 LSB/MSB of the Tx buffer length
  3446.     A1/A2 receive frame address match field one/two
  3447.     A     address fieldof received frame. In non-buffered mode, this
  3448.           result is not provided.
  3449.     C     control field of received frame. In non-buffered mode, this
  3450.           result is not provided.
  3451.     RXI/R TXI/R receive/transmit interrupt result register
  3452.     R0/R1 LBS/MSB of the length of the frame received
  3453.     RIC/TIC receiver/transmitter interrupt result code
  3454. SeeAlso: #P121,#P122,#P123,#P124,#P125,#P126
  3455.  
  3456. Bitfields for SDLC 8273 interal port A: Modem Control Input Port:
  3457. Bit(s)    Description    (Table P121)
  3458.  7-5    not used
  3459.  4    DSR change (PA4)
  3460.  3    CTS change (PA3)
  3461.  2    Data Set Ready (PA2)
  3462.  1    Carrier Detect (PA1)
  3463.  0    Clear to Send (PA0)
  3464. SeeAlso: #P120
  3465.  
  3466. Bitfields for SDLC 8273 interal port B: Modem Control Output Port:
  3467. Bit(s)    Description    (Table P122)
  3468.  7-6    not used
  3469.  5    Flag Detect (PB5)
  3470.  4-3    reserved
  3471.  2    Data Terminal Ready (PB2)
  3472.  1    reserved (PB1)
  3473.  0    Request to Send (PB0)
  3474. SeeAlso: #P120
  3475.  
  3476. Bitfields for SDLC 8273 internal: Operating Mode Register:
  3477. Bit(s)    Description    (Table P123)
  3478.  7-6    not used
  3479.  5    =1 HDLC abort enable
  3480.  4    =1 EOP interrupt enable
  3481.  3    =1 enable early Tx interrupt
  3482.  2    =1 Buffered Mode
  3483.  1    =1 Two Preframe Sync Characters
  3484.  0    =1 Flag Stream Mode
  3485. SeeAlso: #P120
  3486.  
  3487. Bitfields for SDLC 8273 internal: Serial I/O Register:
  3488. Bit(s)    Description    (Table P124)
  3489.  7-3    not used
  3490.  2    =1 Data Loopback
  3491.  1    =1 Clock Loopback
  3492.  0    =1 NRZI Mode
  3493. SeeAlso: #P120
  3494.  
  3495. Bitfields for SDLC 8273 internal: Data Transfer Mode Register:
  3496. Bit(s)    Description    (Table P125)
  3497.  7-1    not used
  3498.  0    =1 Interrupt Data Transfers
  3499. SeeAlso: #P120
  3500.  
  3501. Bitfields for SDLC 8273 internal: One-Bit Delay Mode Register:
  3502. Bit(s)    Description    (Table P126)
  3503.  7 =1    One-Bit Delay Enable
  3504.  6-0    not used
  3505. SeeAlso: #P120
  3506.  
  3507. (Table P127)
  3508. Values for SDLC 8273 result register:
  3509.  transmit result codes:         status after interrupt:
  3510.   0C: early transmit interrupt      transmitter active
  3511.   0D: frame transmit complete      idle or flags
  3512.   0E: DMA underrun          abort
  3513.   0F: clear to send error      abort
  3514.   10: abort complete          idle or flags
  3515.  receive result codes:
  3516.   X0: A1 match / general receive  active
  3517.   X1: A2 match              active
  3518.   03: CRC error              active
  3519.   04: abort detected          active
  3520.   05: idle detected          disabled
  3521.   06: EOP detected          disabled
  3522.   07: frame less than 32 bits      active
  3523.   08: DMA overrun          disabled
  3524.   09: memory buffer overflow      disabled
  3525.   0A: carrier detect failure      disabled
  3526.   0B: receiver interrupt overrun  disabled
  3527.  X bits received inlast byte:
  3528.    E: all eight bits of last byte (bit7-0)
  3529.    0: bit0 only
  3530.    8: bit1-0
  3531.    4: bit2-0
  3532.    C: bit3-0
  3533.    2: bit4-0
  3534.    A: bit5-0
  3535.    6: bit6-0
  3536. ----------P03880389--------------------------
  3537. PORT 0388-0389 - AdLib - MONO SOUND OUTPUT
  3538. Note:    also supported by SoundBlaster and compatibles
  3539. SeeAlso: PORT 0220h-0223h,PORT 0388h-038Fh"soundmachine"
  3540.  
  3541. 0388  R-  both speakers -- Status
  3542.         bit7  : interrupt request (IRQ)
  3543.         bit6  : timer 1 overflow
  3544.         bit5  : timer 2 overflow
  3545.         bit4-0: reserved
  3546. 0388  -W  both speakers -- Address port (see #P128)
  3547.     index in OPL2 (YMF3812), OPL3 (YMF262), OPL4 (YF278-F)
  3548. 0389  -W  data port
  3549. Note:    the AdLib requires a delay of 3.3 microseconds between writing to
  3550.       PORT 0388h and writing to PORT 0389h, and a delay of 23 microseconds
  3551.       after a write to PORT 0389h before any other operation is allowed
  3552.  
  3553. (Table P128)
  3554. Values for AdLib address port index:
  3555.  01h    Enable waveform control
  3556.     bit 7-6: (OPL4, OPL3 in OPL2 mode only) lsi test
  3557.     bit 5: (OPL2 only) wave select enable (WS)
  3558.            (OPL4, OPL3) lsi test
  3559.     bit 4-0: lsi test
  3560.  02h    Timer #1 data (OPL2 and OPL3 in OPL2 mode only)
  3561.  03h    Timer #2 data (OPL2 and OPL3 in OPL2 mode only)
  3562.  04h    Timer control flags (OPL2 and OPL3 in OPL2 mode only)
  3563.     bit 7  : reset interrupt (RST)
  3564.     bit 6  : timer 1 mask (MASK1)
  3565.     bit 5  : timer 2 mask (MASK2)
  3566.     bit 4-2: reserved
  3567.     bit 1  : start timer 2 (ST2)
  3568.     bit 0  : start timer 1 (ST1)
  3569.  04h    (OPL3 in OPL3 mode only) connection select
  3570.     bit 7-6: reserved
  3571.     bit 5-0: connection selection
  3572.  05h    (OPL3) compatibility register
  3573.     bit 7-1: reserved
  3574.     bit 0: enable OPL3 mode (NEW), default disabled
  3575.  08h    Speech synthesis mode
  3576.     bit 7: (OPL2 only) speech synthesis or FM music mode (CSM)
  3577.     bit 6: select keyboard split point (SEL/NTS)
  3578.     bit 5-0: reserved
  3579.  20h-35h Amplitude Modulation / Vibrato
  3580.     bit 7: AM modulation (AM)
  3581.     bit 6: vibrato (VIB)
  3582.     bit 5: sustain (EG)
  3583.     bit 4: keyboard scaling rate (KSR)
  3584.     bit 3-0: multi (MF)
  3585.  40h-55h Level key scaling / Total level
  3586.     bit 7-6: key scale level (KSL)
  3587.     bit 5-0: total level (TL)
  3588.  60h-75h Attack / Decay rate
  3589.     bit 7-4: attack rate
  3590.     bit 3-0: decay rate
  3591.  80h-95h Sustain / Release rate
  3592.     bit 7-4: sustain level
  3593.     bit 3-0: release rate
  3594.  A0h-A8h Octave / Frequency (LSB)
  3595.  A9h-AFh ???
  3596.  B0h-B8h Octave / Frequency Number
  3597.     bit 7-6: reserved
  3598.     bit 5  : key on, mute
  3599.     bit 4-2: block, octave
  3600.     bit 1-0: f-number (MSB)
  3601.  BDh    percussion, vibrato, AM    (OPL2, OPL3 in OPL2 mode only)
  3602.     bit 7: amplitude modulation (AM)
  3603.     bit 6: vibrato (VIB)
  3604.     bit 5: ryhthm, percussion on/off (R)
  3605.     bit 4: bass drum on/off (BD)
  3606.     bit 3: snare drum on/off (SD)
  3607.     bit 2: tom-tom on/off (TOM)
  3608.     bit 1: top cymbal on/off (TC)
  3609.     bit 0: hi hat on/off (HH)
  3610.  C0h-C8h Feedback / Algorithm
  3611.     bit 7-4: OPL3: channel D-A
  3612.     bit 3-1: feedback
  3613.     bit 0: connection
  3614.  E0h-F5h Waveform Selection
  3615.     bit 7-3: reserved
  3616.     bit 2  : (OPL3) waveform bit2
  3617.     bit 1-0: waveform
  3618. SeeAlso: #P129
  3619.  
  3620. (Table P129)
  3621. Values for Sound Blaster registers inside groups:
  3622. Offset
  3623.  +00..+02: operators 1-3    modulator channel 1-3
  3624.  +03..+05: operators 4-6    carrier channel 1-3
  3625.  +08..+0A: operators 7-9    modulator channel 4-6
  3626.  +0B..+0D: operators 10-12  carrier channel 4-6
  3627.  +10..+12: operators 13-15  modulator channel 7-9
  3628.  +13..+15: operators 16-18  carrier channel 7-9
  3629.  +06, +07, +0E, +0F: reserved
  3630. SeeAlso: #P128
  3631. ----------P03880389--------------------------
  3632. PORT 0388-0389 - Soundblaster PRO FM-Chip
  3633. ----------P0388038B--------------------------
  3634. PORT 0388-038B - Soundblaster 16 ASP FM-Chip
  3635. ----------P0388038F--------------------------
  3636. PORT 0388-038F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  3637. Note:    Adlib-compatible, Covox 'voice master' & 'speech thing' compatible
  3638.       soundcard
  3639. SeeAlso: PORT 022Fh"soundmachine",PORT 0278h"Covox"
  3640.  
  3641. 0388  -W  Covox 'speech thing' compatible speech output via printer port?
  3642.         enabled if bit 6 set in PORT 038Fh
  3643. 0388  RW  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  3644.         (see PORT 0388h-0389h"Sound Blaster")
  3645. 0389  -W  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  3646.         (see PORT 0388h-0389h"Sound Blaster")
  3647. 038A  -W  I²C control for TDA7302 NF-MUX and X24C04 EEPROM
  3648.         bit 7: I²C bus SDA out (data),  enabled if bit2=1 in PORT 038Fh
  3649.         bit 0: I²C bus SCL out (clock), enabled if bit2=1 in PORT 038Fh
  3650. 038B  R-  I²C status for TDA7302 NF-MUX and X24C04 EEPROM
  3651.         bit 7: I²C bus SDA in (data),  enabled if bit2=1 in PORT 038Fh
  3652.         bit 0: I²C bus SCL in (clock), enabled if bit2=1 in PORT 038Fh
  3653. 038F  RW  configuration port (power on default=0, all features disabled)
  3654.     (see #P130)
  3655.  
  3656. Bitfields for mc-soundmachine configuration port:
  3657. Bit(s)    Description    (Table P130)
  3658.  7    Covox 'voice master' enabled at PORT 022Fh
  3659.  6     ""   'speech thing' enabled at PORT 03BCh
  3660.  5     ""             enabled at PORT 0278h
  3661.  4     ""             enabled at PORT 0378h
  3662.  3    not used (0388???)
  3663.  2    I²C bus enabled (see PORT 038Ah,PORT 038Bh)
  3664.  1    gameport enabled (see PORT 0201h)
  3665.  0    AdLib registers (see PORT 0388h,PORT 0389h) enabled
  3666. ----------P03900397--------------------------
  3667. PORT 0390-0397 - Sunshine EW-901B, EW-904B
  3668.         EPROM writer card for EPROMs up to 27512
  3669. 0390-0393  ??  adresses of the 8255 on the EW-90xB
  3670. ----------P0390039F--------------------------
  3671. PORT 0390-039F - Cluster adapter (AT)
  3672.  
  3673. 0390  ??  (adapter 0)    (XT)
  3674. 0391  ??  (adapter 0)    (XT)
  3675. 0392  ??  (adapter 0)    (XT)
  3676. 0393  ??  (adapter 0)    (XT)
  3677. ----------P03980399--------------------------
  3678. PORT 0398-0399 - Dell Enhanced Parallel Port
  3679. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 026Eh
  3680.  
  3681. 0398  -W  index for data port
  3682. 0399  RW  EPP command data
  3683. ----------P03A003AC--------------------------
  3684. PORT 03A0-03AC - 1st SDLC (Binary Synchronous Data Link Control adapter)
  3685. SeeAlso: PORT 0380h"SDLC"
  3686. ----------P03A003AF--------------------------
  3687. PORT 03A0-03AF - 1st BSC (Binary Synchronous Communication) adapter
  3688. Notes:    Initialization of the BSC adapter is performed in a typical
  3689.       sequence like this: Setup 8255 port A-C configuration by writing
  3690.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  3691.       to 382h. Reset 8251A internal registers by pulsing 8255 port B4.
  3692.       After this the 8253 has to be programmed to the desired values
  3693.       (counter 0 not used, counters 1 and 2 to mode 0). Now, the 8251A
  3694.       is ready to be loaded with a set of control words that define the
  3695.       communication environment.
  3696.     8251A: The control words are split into two formats, mode
  3697.       instruction and command instruction. The mode instruction must
  3698.       be inserted immediately after a reset operation (via 8255 port B4
  3699.       or setting command instruction bit6 to 'internal reset').
  3700.       The required synchronization characters are next loaded into the
  3701.       8251A (usually 32h for BSC). All control words written to the
  3702.       8251A after this will load the command instruction.
  3703.          reset -> mode instruction
  3704.               SYNC character 1
  3705.               SYNC character 2
  3706.               command instruction
  3707.               data ...
  3708.               command instruction
  3709.               data ...
  3710.               command instruction
  3711.               ...
  3712. SeeAlso: PORT 0380h"BSC"
  3713.  
  3714. 03A0  R-   on adapter 8255(A5) port A: internal/external sensing (see #P131)
  3715. 03A1  -W   on adapter 8255(A5) port B: external modem interface (see #P132)
  3716. 03A2  RW   on adapter 8255(A5) port C: internal control (see #P133)
  3717. 03A3  ?W   on adapter 8255(A5) mode initialization
  3718. 03A4  RW   on adapter 8253 (programmable counter) counter 0:
  3719.         LSB / MSB square wave generator (unused in sync mode)
  3720. 03A5  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  3721.         (connected to 8255 bitA7, IRQ4 level)
  3722. 03A6  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  3723.         (connected to 8255 bitA6, IRQ4 level)
  3724. 03A7  ?W   on adapter 8253 mode register (see #P134)
  3725. 03A8  RW   on adapter 8251: data (see #P135)
  3726. 03A9  R-   on adapter 8251: command/mode/USART status register (see #P136)
  3727.  
  3728. Bitfields for BSC 8255 port A:
  3729. Bit(s)    Description    (Table P131)
  3730.  7    =1 timer 1 output active
  3731.  6    =1 timer 2 output active
  3732.  5    =1 TxRDY active
  3733.  4    receive clock active (if pulsing)
  3734.  3    =0 clear to send is on from interface
  3735.  2    transmit clock active (if pulsing)
  3736.  1    =0 data carrier detect is on from interface
  3737.  0    =0 ring indicator is on from interface
  3738. SeeAlso: #P132
  3739.  
  3740. Bitfields for BSC 8255 port B:
  3741. Bit(s)    Description    (Table P132)
  3742.  7    =1 enable IRQ 4 level interrupt (timer 1 and 2)
  3743.  6    =1 gate timer 1
  3744.  5    =1 gate timer 2
  3745.  4    =1 reset 8251A
  3746.  3    =1 not used
  3747.  2    =0 turn on test
  3748.  1    =0 turn on select standby
  3749.  0    =0 turn on data signal rate select
  3750. SeeAlso: #P131,#P133
  3751.  
  3752. Bitfields for BSC 8255 port C:
  3753. Bit(s)    Description    (Table P133)
  3754.  7 R-    =0 BSC adapter (=1 may be used to detect SDLC??)
  3755.  6 R-    =0 test indicate active
  3756.  5 R-    timer 0 output (if pulsing)
  3757.  4 R-    receive data (if pulsing)
  3758.  3 -W    =0 enable timer 1 and 2 IRQ4 and receive IRQ 4
  3759.  2 -W    =1 electronic wrap
  3760.  1 -W    =1 gate external clock
  3761.  0 -W    =1 gate internal clock
  3762. SeeAlso: #P131,#P132
  3763.  
  3764. Bitfields for BSC 8253 mode register:
  3765. Bit(s)    Description    (Table P134)
  3766.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  3767.  5-4    RL1-RL0     00= couner latching operation
  3768.          01= read/load most significant byte (MSB)
  3769.          10= read/load least significant byte (LSB)
  3770.          11= read/load LSB first, then MSB
  3771.  3-1    M2-M0     000= mode 0 (for counter 1 and 2)
  3772.          001= mode 1 (not used for BSC)
  3773.          x10= mode 2 (not used for BSC)
  3774.          x11= mode 3 (not used for BSC)
  3775.          100= mode 4 (not used for BSC)
  3776.          101= mode 5 (not used for BSC)
  3777.  0    BCD       0= binary counter 16bits
  3778.            1= BCD counter 4 decades
  3779.  
  3780. Bitfields for BSC 8251 data:
  3781. Bit(s)    Description    (Table P135)
  3782. ---mode instruction (W)---
  3783.  7    =0 Double SYNC Character
  3784.  6    =1 SYNDET is an Input
  3785.  5    =1 Even Parity
  3786.  4    =1 Parity Enable
  3787.  3-2    Character Length 00=5bits, 01=6bits, 10=7bits, 11=8bits
  3788.  1-0    not used (always 0)
  3789. ---SYNC character 1/2 (W)---
  3790.  string of two characters to be sync'ed at (in hunt mode).
  3791. ---command instruction (W)---
  3792.  7    Enter Hunt Mode
  3793.  6    Internal Reset
  3794.  5    Request to Send
  3795.  4    Error Reset
  3796.  3    Send Break Character
  3797.  2    Receive Enable
  3798.  1    Data Terminal Ready
  3799.  0    Transmit Enable
  3800. ---data (RW)---
  3801.     any data
  3802. SeeAlso: #P134,#P136
  3803.  
  3804. Bitfields for BSC 8251 command/mode/USART status:
  3805. Bit(s)    Description    (Table P136)
  3806.  7    Data Set Ready (indicated that DSR is at 0 level)
  3807.  6    SYNDET
  3808.  5    Framing Error (not used for synchronous communications)
  3809.  4    Overrun Error (OE flag on when Overrun Error occurs)
  3810.  3    Parity Error (PE flag on when a parity error occurs)
  3811.  2    TxEmpty
  3812.  1    RxRDY (causing IRQ 3 level)
  3813.  0    TxRDY (has not the same meaning as 8251A TxRDY output pin).
  3814.       THIS one is NOT conditioned by CTS and TxEnable (causing IRQ 4 level)
  3815. SeeAlso: #P135
  3816. ----------P03AB------------------------------
  3817. PORT 03AB - GI1904 Scanner Interface Adapter
  3818. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  3819.       PORT 036Bh, PORT 03ABh, PORT 03EBh
  3820. ----------P03AC------------------------------
  3821. PORT 03AC - GS-IF Scanner Interface adapter
  3822. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  3823.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  3824. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  3825.       others use this interface
  3826. ----------P03B003BF--------------------------
  3827. PORT 03B0-03BF - MDA  (Monochrome Display Adapter based on 6845)
  3828.  
  3829. 03B0  -W  same as 03B4
  3830. 03B1  RW  same as 03B5
  3831. 03B2  -W  same as 03B4
  3832. 03B3  RW  same as 03B5
  3833. 03B4  -W  MDA CRT index register     (MDA/mono EGA/mono VGA)
  3834.         selects which register (0-11h) is to be accessed through 03B5h
  3835.         Note: this port is read/write on some VGAs
  3836.         bit7-6: (VGA) reserved (0)
  3837.         bit5  : (VGA) reserved for testing (0)
  3838.         bit4-0: selects which register is to be accessed through 03B5h
  3839. 03B5  RW  MDA CRT data register     (MDA/mono EGA/mono VGA) (see #P137)
  3840.         selected by port 3B4. registers 0C-0F may be read
  3841.         Color adapters are at 3D4/3D5, but are mentioned here for
  3842.           better overview.
  3843.         There are differences in names and some bits functionality
  3844.           on EGA, VGA in their native modes, but clones in their
  3845.           emulation modes emulate the original 6845 at bit level. The
  3846.           default values are for MDA, HGC, CGA only, if not otherwise
  3847.           mentioned.
  3848. 03B6  -W  same as 03B4h
  3849. 03B7  RW  same as 03B5h
  3850. 03B8  rW  MDA mode control register (see #P138)
  3851. 03B9  ?W  reserved for color select register on color adapter
  3852. 03B9  -W  MDA/HGC: set lightpen flipflop (value written is ignored)
  3853.         cannot be found on native mono EGA, mono VGA (without
  3854.           translation ROM)
  3855. 03BA  R-  CRT status register (see #P139)
  3856.         (EGA/VGA) input status 1 register
  3857. 03BA  -W  (mono EGA/mono VGA) feature control register
  3858.         (see PORT 03DAh-W for details; VGA, see PORT 03CAh-R)
  3859. 03BB  -W  light pen strobe reset (on any value)
  3860.  
  3861. (Table P137)
  3862. Values for mono video adapter CRT data register index:
  3863.                   defaults:    MDA/HGC    HGC   CGA   CGA      CGA
  3864.                          text  graph text1 text2 graph
  3865.                            7  720x348  1     3      5,6
  3866.  00h    horizontal total              61h    35h   38h   71h      38h
  3867.           ET4000: in VGA mode scanlines-5
  3868.               in EGA mode scanlines-2
  3869.  01h    horizontal displayed              50h    2Dh   28h   50h      28h
  3870.           horizontal display end-1 (EGA,VGA)
  3871.  02h    horizontal sync position          52h    2Eh   2Dh 5Ah/5Ch 2Dh
  3872.  03h    sync pulse width              0Fh 07h/0Fh 0Ah   0Ah      0Ah
  3873.            bit7-4 vsync, bit3-0 hsync
  3874.           end horizontal blanking (EGA,VGA)
  3875.            VGA    : bit7=1      : enable read access to regs
  3876.                     10h, 11h (otherwise VGA clones
  3877.                     may show lightpen values)
  3878.            EGA,VGA: bit6-5=0-3: display enable skew control
  3879.             bit4-0      : end blanking
  3880.  04h    vertical total (vcycle-1)          19h    5Bh   1Fh   1Fh      7Fh
  3881.            bit7 only used on MCGA
  3882.           start horizontal retrace (EGA, VGA)
  3883.           Genoa SuperEGA only???:
  3884.            bit7  : start at odd memory address
  3885.            bit6-5: horizontal sync skew
  3886.            bit4-0: start retrace+ retrace width
  3887.  05h    vertical total adjust              06h    02h   06h   06h      06h
  3888.            bit7-5 only used on MCGA
  3889.           end horizontal retrace (EGA, VGA)
  3890.            bit7  : (EGA) start at odd memory address
  3891.                (VGA) bit5 of end horizontal retrace
  3892.            bit6-5: horizontal sync skew
  3893.            bit4-0: end horizontal retrace
  3894.  06h    vertical displayed              19h    57h   19h   19h      64h
  3895.            bit7 only used on MCGA
  3896.           (EGA) vertical total-1
  3897.           (VGA) vertical total-2
  3898.  07h    vertical sync pulse width-1          19h    57h   1Ch   1Ch 70h/66h
  3899.            bit7  only used on MCGA
  3900.           controller overflow (EGA,VGA)
  3901.            bit7: (VGA) bit9 of start vertical retrace (10h)
  3902.            bit6: (VGA) bit9 of vertical display end (12h)
  3903.            bit5: (VGA) bit9 of vertical total (06h)
  3904.              (EGA) bit5 of cursor-position (0Ah)
  3905.            bit4: bit8 of line compare (18h)
  3906.            bit3: bit8 of start vertical blanking (15h)
  3907.            bit2: bit8 of vertical retrace start (10h)
  3908.            bit1: bit8 of vertical display end (12h)
  3909.            bit0: bit8 of vertical total (06h)
  3910.  08h    interlace mode (not MCGA)          02h    02h   02h   02h      02h
  3911.            bit7-2: reserved
  3912.            bit1  : delay
  3913.            bit0=1: interlace on
  3914.           preset row scan (EGA, VGA)
  3915.            bit7  : reserved
  3916.            bit6-5: (VGA) byte panning
  3917.            bit4-0: start row scan after retrace
  3918.  09h    maximum scan lines              0Dh    03h   07h   07h      01h
  3919.            bit7  : (VGA) double scan active
  3920.            bit6  : (VGA) bit9 of line compare (18h)
  3921.            bit5  : (VGA) bit9 of start vertical blanking (15h)
  3922.            bit4-0: maximum scan line 00..31 (height-1)
  3923.  0Ah    cursor start                  0Bh    00h   06h   06h 06h/00h
  3924.            bit7  : reserved
  3925.            bit6-5: original 6845: cursor on/off, blink interval
  3926.                (not on all adapters, as original MDA, CGA have
  3927.                extra circuitrity to avoid this!!)
  3928.            bit6-5: native EGA: not used
  3929.            bit6  : (VGA) not used
  3930.            bit5=0: (VGA) cursor on
  3931.            bit4-0: first cursor scanline
  3932.  0Bh    cursor end                  0Ch    00h   07h   07h 07h/00h
  3933.            bit7  : reserved
  3934.            bit6-5: EGA, VGA: cursor skew control
  3935.            bit4-0: end cursor row
  3936.  0Ch RW    start address high              00h    00h   00h   00h      00h
  3937.            bit7-6 not used by original 6845 (MDA,HGC,CGA)
  3938.  0Dh RW    start address low              00h    00h   00h   00h      00h
  3939.  0Eh RW    cursor location high              00h    00h   00h   00h      00h
  3940.            bit7-4 not used by original 6845 (MDA,HGC,CGA)
  3941.            bit5-4 reserved on MCGA
  3942.  0Fh RW cursor location low              00h    00h   00h   00h      00h
  3943. ---for 10h-14h MCGA registers see at 3D4h/3D5h---
  3944.  10h R-    light pen high (MDA/CGA/EGA only, some HGC, few VGA
  3945.            clones in emulation, not with ET4000)
  3946.  10h R-    native VGA with bit7=1 in end horizontal blanking (03h) and ET4000:
  3947.            start vertical retrace
  3948.  10h R- MCGA at 3D5h only: mode control status register (see #P174)
  3949.  10h -W EGA, VGA: start vertical retrace
  3950.  10h -W MCGA at 3D5h only: mode control register (see #P175)
  3951.  11h R- light pen low (MDA/CGA/EGA only, some HGC, few VGA
  3952.            clones in emulation, not with ET4000)
  3953.  11h R- native VGA with bit7=1 in end horizontal blanking (03h):
  3954.            end vertical retrace
  3955.  11h -W EGA, VGA: end vertical retrace
  3956.            bit7  : VGA: protection bit
  3957.                 =0 enable write access to 00h-07h
  3958.                 =1 read only regs 00h-07h with the exception
  3959.                    of bit4 in 07h. ET4000: protect 35h also.
  3960.            bit6  : VGA: =0 three, =1 five refreshcycles/line
  3961.                ET4000: reserved
  3962.            bit5=0: (MCGA also) enable vertical interrupt
  3963.            bit4=0: (MCGA also) clear vertical interrupt
  3964.            =1:           no effect
  3965.            bit3-0: (MCGA also) vertical retrace end
  3966.  11h RW MCGA at 3D5h only: interrupt control register (see #P176)
  3967.  12h    EGA, VGA: vertical display end register
  3968.  12h RW MCGA at 3D5h only: character generator/sync polarity register
  3969.           (see #P177)
  3970.  12h R- MCGA at 3D5h only: display sense register (see #P173)
  3971.         (with bit7=1 in 11h only)
  3972.  13h    EGA, VGA: row offset register
  3973.            logical screen line width in
  3974.         byte mode : bytes/(line/2)
  3975.         word mode : bytes/(line/4)
  3976.         dword mode: bytes/(line/8)
  3977.  13h -W MCGA at 3D5h only: character font pointer register (see #P173)
  3978.  14h    EGA, VGA: underline location register
  3979.            bit7=0: reserved
  3980.            bit6  : VGA: 0=word-mode, 1=dword-mode (see 17h, bit6)
  3981.            bit5  : VGA: 0=standard address counter clock
  3982.                 1=address counter clock/4 (see 17h, bit3)
  3983.            bit4-0: horizontal underline row scan
  3984.  14h -W MCGA at 3D5h only: number of characters to load during
  3985.            vretrace period (see #P173)
  3986.  14h -W HGC+,InColor: xMode register
  3987.  15h    EGA, VGA: start vertical blanking-1
  3988.  15h -W HGC+,InColor: underscore register
  3989.  16h    EGA, VGA: end vertical blanking register
  3990.            bit7-5 : EGA: reserved, but used on original EGA???
  3991.            bit4-0 : end vertical blanking
  3992.  16h -W HGC+,InColor: overstrike register
  3993.  17h    EGA, VGA: mode control register (see #P140)
  3994.  17h -W    InColor: exception register
  3995.  18h    EGA, VGA: line compare register
  3996.  18h -W    InColor: plane mask register
  3997.  19h    Genoa SuperEGA only: double scan control
  3998.            at 3B5h only in MDA, HGC emulation, but at 3D5h even in
  3999.            mono EGA modes.
  4000.            bit7-5 : reserved
  4001.            bit4   : HR/VR width adjust flag for double scan mode
  4002.            bit3-1 : 1=test, 0=normal
  4003.            bit0   : double scan enable
  4004.  19h -W    InColor: read/write control register
  4005.  1Ah -W    InColor: read/write color register
  4006.  1Bh -W    InColor: Latch Protect register
  4007.  1Bh    ET3000 only: x-zoom start register
  4008.           The existence of this register is often used to decide
  4009.            between ET3000 and ET4000, as the ET4000 does not offer
  4010.            hardware-zoom features.
  4011.  1Ch RW    InColor: palette register
  4012.  1Ch    ET3000 only: x-zoom end register
  4013.  1Dh    ET3000 only: y-zoom start register low
  4014.  1Eh    ET3000 only: y-zoom end register low
  4015.  1Fh    ET3000 only: y-zoom start & end high register
  4016.  20h    ET3000 only: zoom start address register low
  4017.  21h    ET3000 only: zoom start address register medium
  4018.  23h    ET3000 only: extended start address (see register 33h)
  4019.  24h    ET3000 only: compatibility register (see register 34h)
  4020.  25h    ET3000 only: overflow high register (see registers 35h, 07h)
  4021.  2Dh R- S3: extended Chip ID (always 88h???)
  4022.  2Eh R- S3 7xx/866/x68: new chip ID
  4023.  2Fh R- S3 7xx/866/x68: chipset revision
  4024.  30h RW    S3: chip ID/revision (see #P146)
  4025.  31h RW    S3: memory configuration (see #P147)
  4026.  32h    ET4000: RAS/CAS configuration ('key' protected) (see #P141)
  4027.  32h RW S3: backward compatibility 1 (see #P148)
  4028.  33h    ET4000: extended start address
  4029.           This register is often used to decide between ET4000
  4030.           and ET3000, when bit3-0 can be reread after write.
  4031.            bit7-4 : reserved
  4032.            bit3-2 : cursor address bit 17-16
  4033.            bit1-0 : linear start address bits 17-16
  4034.  33h RW S3: backward compatibility 2 (see #P149)
  4035.  34h    ET4000: 6845 compatibility control register ('key' protected)
  4036.       (see #P142)
  4037.  34h RW S3: backward compatibility 3
  4038.  35h    ET4000: overflow high register (protected by 11h, bit7) (see #P143)
  4039.  35h RW S3: CRT register lock
  4040.  36h    ET4000: video system configuration 1 ('key' protected) (see #P144)
  4041.  36h R    S3: Reset State read 1
  4042.  37h    ET4000: video system configuration 2 ('key' protected) (see #P145)
  4043.  37h R    S3: Reset State read 2
  4044.  38h RW    S3: S3 Register lock 1
  4045.     set reg 38h to 48h and reg 39h to A5h to unlock other S3 registers
  4046.  39h RW    S3: S3 Register lock 2
  4047.  3Ah RW S3: S3 Miscellaneous
  4048.     bit 4: ???
  4049.  3Bh RW S3: Data Transfer Execute position
  4050.  3Ch RW S3: Interlace Retrace start
  4051.  40h RW S3: System Configuration
  4052.     bit 0: enable access to 8514/A-compatible registers at PORT x2E8h
  4053.  41h    S3: BIOS Flag register
  4054.  42h RW S3: mode control
  4055.  43h RW S3: extended mode
  4056.  45h RW S3: hardware graphics cursor mode
  4057.  46h-47h RW S3: hardware cursor origin X
  4058.  48h-49h RW S3: hardware cursor origin Y
  4059.  4Ah RW S3: hardware graphics cursor foreground stack
  4060.  4Bh RW S3: hardware graphics cursor background stack
  4061.  4Ch-4Dh RW S3: hardware graphics cursor map start address
  4062.  4Eh RW S3: hardware cursor pattern start X
  4063.  4Fh RW S3: hardware cursor pattern start Y
  4064.  50h RW S3 801+: Extended System Control 1
  4065.  51h RW S3 801+: Extended System Control 2
  4066.  52h RW S3 801+: Extended BIOS Flag 1
  4067.         bits 7-6 are sync polarities (see #P165) for Diamond cards
  4068.  53h RW S3 801+: Extended Memory Control 1
  4069.  54h RW S3 801+: Extended Memory Control 2
  4070.  55h RW S3 801+: Extended Video DAC Control
  4071.  56h RW S3 801+: External Sync Control 1
  4072.  57h RW S3 801+: External Sync Control 2
  4073.  58h RW S3 801+: Linear Address Window Control
  4074.  59h RW S3 801+: Linear Address Window Position (high)
  4075.  5Ah RW S3 801+: Linear Address Window Position (low)
  4076.  5Bh RW S3 801+: Extended BIOS Flag 2
  4077.  5Ch RW S3 801+: General Output Port
  4078.     bit 0: ???
  4079.     bit 1: ???
  4080.  5Dh RW S3 801+: Extended Horizontal Overlow
  4081.  5Eh RW S3 801+: Extended Vertical Overflow
  4082.  5Fh RW S3 928/964: Bus Grant Termination Position
  4083.  60h RW S3 864/964: extended memory control 3
  4084.  61h RW S3 864/964: extended memory control 4
  4085.  62h RW S3 864/964: extended memory control 5
  4086.  63h RW S3 864/964: external sync delay adjustment (high)
  4087.  64h RW S3 864/964: genlocking adjustment
  4088.  65h RW S3 864/964: extended miscellaneous control
  4089.  66h RW S3 864/964: extended miscellaneous control 1
  4090.  67h RW S3 864/964: extended miscellaneous control 2
  4091.  68h RW S3 864/964: configuration 3
  4092.  69h RW S3 864/964: extended system control 3
  4093.  6Ah RW S3 864/964: extended system control 4
  4094.  6Bh RW S3 864/964: extended BIOS flag 3
  4095.  6Ch RW S3 864/964: extended BIOS flag 4
  4096.  6Dh RW S3 864/964: extended miscellaneous control
  4097. Notes:    MDA, HGC, CGA: 6845 registers 00h-0Dh are write only, 0Eh, 0Fh
  4098.            are r/w, and 10h-11h are read only.
  4099.            The alternative initial defaults may be used
  4100.            sometimes on modern adapters.
  4101.     HGC+(RamFont): as with HGC, but 3 (unknown) registers more for
  4102.            font control
  4103.     emulations   : more registers may be r/w, but most often it's
  4104.            the same as with native 6845.
  4105.     MCGA (CGA+)  : Though this is a mixture of CGA and VGA, most
  4106.            registers are same as with CGA, but with some
  4107.            enhancements and incompatibilities to EGA, VGA.
  4108.     native EGA   : registers 00h-0Bh are write only, 0Ch-0Fh are
  4109.            r/w, 10h-11h are read/write, 12h-18h are write
  4110.            only. More regs may be r/w on enhanced clones.
  4111.     GenoaSuperEGA: adapter with chips SEQCRT GN006001 and GRAT
  4112.            GN006002, e.g. c't Super-EGA adapter. Is EGA
  4113.            clone with up to 800x600 and full 6845 emulation.
  4114.     native VGA   : all registers 00-18h are r/w, but 00h-07h are
  4115.            write-locked if bit7 in 11h is set.
  4116.     ET4000         : same as VGA, but with additional r/w registers
  4117.            32h-37h, protected by 'key' except 33h, 35h
  4118.            (see 3BFh for details). 35h is protected by
  4119.            bit7 in 11h. The 'key' must be issued at least
  4120.            after each power on or synchronous reset.
  4121. SeeAlso: #P138,#P139,#P173
  4122.  
  4123. Bitfields for mono video adapter mode control register:
  4124. Bit(s)    Description    (Table P138)
  4125.  7 not used by MDA, page number on HGC
  4126.  6    not used
  4127.  6  R-O    (mono ET4000 only) report status of bit 1 (enable 2nd page) of
  4128.       Hercules compatibility register (PORT 03BFh)
  4129.  5    enable blink (0 = intense background, 1 = blink)
  4130.  4    not used
  4131.  3    video enable
  4132.  2    not used
  4133.  1    (MDA) not used
  4134.     (HGC) graphics enable
  4135.     the 6845 has to be reprogrammed completely, if this bit is
  4136.       changed, otherwise the TTL-monitor may be damaged by wrong
  4137.       sync impulses!
  4138.  0    high resolution mode (always set on MDA)
  4139. ---mono ET4000 only, W-O ---
  4140.  7-0    =A0h: second part of 'key', see Hercules compatibility register
  4141.       (PORT 03BFh) for details
  4142. Note:    this port might be completely or partially readable on very few MDA,
  4143.       HGC clones or emulations (e.g. Genoa SuperEGA), but not with the
  4144.       majority of original and clone chips.     It cannot be found on
  4145.       native mono EGA, mono VGA, but on most clones, where it is usually
  4146.       R/W.
  4147. SeeAlso: #P137,#P139
  4148.  
  4149. Bitfields for mono video adapter CRT status register:
  4150. Bit(s)    Description    (Table P139)
  4151.  7    HGC: vertical sync pulse in progress
  4152.  6-4    adapter identification
  4153.     (MSD says) if bit 7 changes within 8000h reads then
  4154.         =000 adapter is Hercules or compatible
  4155.         =001 adapter is Hercules+
  4156.         =101 adapter is Hercules InColor
  4157.         else: adapter is unknown
  4158.  6-4    =111 on MDA and some HGC clones
  4159.  5-4    (mono EGA, mono ET4000) diagnose video display feedback
  4160.     select from color plane enable
  4161.  3    (MDA,HGC) pixel stream (0=currently black, 1=currently white)
  4162.     (mono EGA, mono VGA) vertical retrace in progress
  4163.  2-1    (MDA) reserved
  4164.  2    (HGC, mono EGA) lightpen flipflop set
  4165.     (mono ET4000) reserved (0)
  4166.  1    (HGC) lightpen input stream (if set, current value to get from
  4167.       PORT 03B5h registers 10h-11h)
  4168.     (mono ET4000) reserved (0)
  4169.  0    horizontal drive enabled
  4170. SeeAlso: #P137,#P138
  4171.  
  4172. Bitfields for EGA,VGA mode control register:
  4173. Bit(s)    Description    (Table P140)
  4174.  7    0=CRTC reset and stop, 1=resume reset
  4175.  6    0=word-mode, 1=byte-mode (VGA: see 14h, bit6)
  4176.  5    0=14bit, 1=16bit address wrap
  4177.  4    (native VGA only) reserved (0)
  4178.  4    (EGA and most VGA clones) output control
  4179.     0: video driver active
  4180.     1: video driver not active
  4181.  3    linear address counter clock (0 = standard, 1 = clock/2)
  4182.     (VGA: see register 14h, bit 5)
  4183.  2    horizontal retrace clock (0 = standard, 1 = clock/2)
  4184.  1    row scan counter
  4185.     0: address bit 14 = scan bit 1
  4186.     1: address bit 14 not altered
  4187.  0    6845 compatibility mode
  4188.     0: address bit 13 = scan bit 0 (as with 6845)
  4189.     1: address bit 13 not altered
  4190. SeeAlso: #P137
  4191.  
  4192. Bitfields for ET4000 RAS/CAS configuration register:
  4193. Bit(s)    Description    (Table P141)
  4194.  7    static column memory
  4195.     ET4000/W32i: interleave mode
  4196.  6    RAL RAS&CAS column setup time
  4197.  5    RCD RAS & CAS time
  4198.  4-3    RSP, RAS pre-charge time
  4199.  2    CPS, CAS pre-charge time
  4200.  1-0    CSW, CAS low pulse width
  4201. SeeAlso: #P137,#P142
  4202.  
  4203. Bitfields for ET4000 compatibility control register:
  4204. Bit(s)    Description    (Table P142)
  4205.  7    6845 compatibility enabled
  4206.  6    ENBA enable double scan/underline in AT&T mode
  4207.  5    ENXL enable translation ROM on writing
  4208.  4    ENXR enable translation ROM on reading
  4209.  3    ENVS VSE register port address
  4210.  2    TRIS tristate ET4000 output pins
  4211.  1    CS2 MCLCK clock select 2
  4212.  0    EMCK enable translation of CS0 bit
  4213. SeeAlso: #P137,#P141,#P143
  4214.  
  4215. Bitfields for ET4000 overflow high register:
  4216. Bit(s)    Description    (Table P143)
  4217.  7    vertical interlace mode
  4218.  6    alternate RMW control
  4219.  5    external sync reset (gen-lock) the line/chr counter
  4220.  4    line compare bit10
  4221.  3    vertical sync start bit10
  4222.  2    vertical display end bit10
  4223.  1    vertical total bit10
  4224.  0    vertical blank start bit10
  4225. SeeAlso: #P137,#P142,#P144
  4226.  
  4227. Bitfields for ET4000 video system configuration 1 register:
  4228. Bit(s)    Description    (Table P144)
  4229.  7    enable 16bit I/O read/write
  4230.  6    enable 16bit display memory read/write
  4231.  5    addressing mode (0=IBM, 1=TLI)
  4232.  4    0=segment / 1=linear system configuration
  4233.  3    font width control (1=up to 16bit, 0=8bit)
  4234.  2-0    refresh count per line-1
  4235. SeeAlso: #P137,#P143,#P145
  4236.  
  4237. Bitfields for ET4000 video system configuration 2 register:
  4238. Bit(s)    Description    (Table P145)
  4239.  7    DRAM display memory type (1=VRAM, 0=DRAM)
  4240.  6    test (1=TLI interal test mode)
  4241.  5    priority threshold control (0=more mem BW)
  4242.  4    disable block read-ahead
  4243.  3    display memory data depth
  4244.  2    bus read data latch control
  4245.  1-0    display memory data bus width
  4246. SeeAlso: #P137,#P144
  4247.  
  4248. (Table P146)
  4249. Values for S3 chip ID/Revision register "CR30":
  4250.  81h    86c911
  4251.  82h    86c911A/924
  4252.  90h    86c928 (original)
  4253. ...
  4254.  A0h    86c801/805 A-step or B-step
  4255. ...  !!!
  4256.  B0h    86c928 PCI
  4257.  C0h    Vision864
  4258.  C1h    Vision864P
  4259.  D0h    Vision964
  4260.  D1h    Vision964P
  4261.  E0h    Trio32/64, 86c866, 86c868, 86c968; actual ID and revision stored in
  4262.       PORT 03B5h registers 2Eh and 2Fh
  4263.  E1h    Trio32/64, 86c866, 86c868, 86c968; actual ID and revision stored in
  4264.       PORT 03B5h registers 2Eh and 2Fh
  4265. SeeAlso: #P147
  4266.  
  4267. Bitfields for S3 "CR31" memory configuration register:
  4268. Bit(s)    Description    (Table P147)
  4269.  0    enable base-address offset (turn on bank-switched operation)
  4270.  1    two-page screen image (enables 2048-pixel wide screen)
  4271.  2    VGA 16-bit memory bus (clear for 8-bit memory bus)
  4272.  3    video memory above 256K accessible
  4273.  5-4    display start address, bits 17&16.  See also registers 51h and 69h
  4274.  6    enable page-mode memory access for text-mode font access
  4275.  7    (except 864/964) enable BIOS ROM address space C6800h-C7FFFh
  4276. SeeAlso: #P146,#P148
  4277.  
  4278. Bitfields for S3 "CR32" Backwards Compatibility 1 register:
  4279. Bit(s)    Description    (Table P148)
  4280.  1-0    character clock period
  4281.     00 IBM-compatible, 8 or 9 dots
  4282.     01 7 dots
  4283.     10 9 dits
  4284.  2    force full character clock for horizontal timing (CGA/HGC emulation),
  4285.       rather than 1/2 dot clock rate
  4286.  3    backward-compatible modes (set for MDA/CGA/EGA/HGC)
  4287.  6    fix VGA screen page using display start address bits 16&17 (see #P147)
  4288.  7    (928,964) tri-state serial output pins SC, SOE0, and SXNR
  4289. SeeAlso: #P147,#P149
  4290.  
  4291. Bitfields for S3 "CR33" Backwards Compatibility 2 register:
  4292. Bit(s)    Description    (Table P149)
  4293.  1    disable VDE protection (PORT 03D4h register 11h bit 7 will not act
  4294.       on PORT 03D4h register 7h bits 1 and 6)
  4295.  3    VCLK is inverted DCLK rather than inverted DCLK/2
  4296.  4    disable writes to RamDAC
  4297.  5    blank signal does not include border area, is same as display enable
  4298.  6    lock palette/overscan registers
  4299.  7    override CGA "enable video" at PORT 03D8h bit 3
  4300. SeeAlso: #P148
  4301. ----------P03BC03BF--------------------------
  4302. PORT 03BC-03BF - PARALLEL PRINTER PORT (MDA's LPT1)
  4303. Range:    PORT 0278h, PORT 0378h, or PORT 03BCh
  4304.  
  4305. 03BC  -W  data port
  4306. 03BC  R-  bidirectional port: input from connector
  4307.       unidirectional port: last value written to port
  4308. 03BD  RW  status port (see #P150)
  4309. 03BE  RW  control port (see #P151)
  4310.  
  4311. Bitfields for parallel interface status port:
  4312. Bit(s)    Description    (Table P150)
  4313.  7    busy
  4314.  6    NOT acknowledge (approx. 5us low pulse)
  4315.  5    out of paper
  4316.  4    printer is selected
  4317.  3    *no* error
  4318.  2    IRQ has *not* occurred
  4319.     (PS/2) printer returned -ACK
  4320.  1-0    reserved
  4321. SeeAlso: #P151
  4322.  
  4323. Bitfields for parallel interface control port:
  4324. Bit(s)    Description    (Table P151)
  4325.  7-5    reserved
  4326.  7    (see PORT 037Bh bit 7)
  4327.  5    enable bidirectional port
  4328.     (PS/2 also requires enabling via port 0102h)
  4329.  4    enable IRQ (via -ACK)
  4330.  3    select printer (SLCT IN line)
  4331.  2    =0 initialize printer (-RESET line)
  4332.  1    automatic line feed
  4333.  0    strobe (must be set for minimum of 5 microseconds)
  4334. SeeAlso: #P150
  4335. ----------P03BF------------------------------
  4336. PORT 03BF - Hercules configuration switch register
  4337. Note:    can also be found on EGA and VGA clones in Hercules emulation
  4338.  
  4339. 03BF  -W  configuration switch register (see #P152)
  4340. 03BF  -W  (ET4000) Hercules compatibility register (see #P153)
  4341. 03BF  RW  (Genoa SuperEGA) miscellaneous register
  4342.     Note: only available in MDA, HGC, and CGA emulation; should be
  4343.       compatible with Hercules configuration register, but may contain
  4344.       additional features
  4345.  
  4346. Bitfields for Hercules configuration switch register:
  4347. Bit(s)    Description    (Table P152)
  4348.  7-2    reserved
  4349.  1    =0  disables upper 32K of graphics mode buffer
  4350.     =1  enables upper 32K of graphics mode buffer
  4351.  0    =0  prevents graphics mode
  4352.     =1  allows graphics mode
  4353. SeeAlso: #P153
  4354.  
  4355. Bitfields for ET4000 compatibility register:
  4356. Bit(s)    Description    (Table P153)
  4357.  1    =0 disables upper 32K of graphics mode buffer
  4358.     =1 enables upper 32K of graphics mode buffer
  4359.  0    reserved (not needed for HGC graphics)
  4360.  7-0    =03h: first part of 'key' for access to some extra
  4361.          ET4000 regs. To issue the 'key', the following
  4362.          code must be executed:
  4363.           MOV DX, 3BFh
  4364.           MOV AL, 3
  4365.           OUT DX, AL
  4366.           MOV DX, 3D8h  (3B8h in mono mode)
  4367.           MOV AL, 0A0h
  4368.           OUT DX, AL
  4369. SeeAlso: #P152 
  4370. ----------P03C003C7--------------------------
  4371. PORT 03C0-03C7 - Sunshine EW-901, EW-901A, EW-904, EW-904A
  4372.         EPROM writer card for EPROMs up to 27512
  4373. 03C0-03C3    adresses of the 8255 on the EW-90x
  4374. ----------P03C003CF--------------------------
  4375. PORT 03C0-03CF - EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  4376.  
  4377. 03C0  rW  EGA VGA ATC index/data register
  4378.          Every write access to this register will toggle an internal
  4379.          index/data selection flipflop, so that consecutive writes to
  4380.          index & data is possible through this port. To get a defined
  4381.          start condition, each read access to the input status register
  4382.          #1 (3BAh in mono / 3DAh in color) resets the flipflop to load
  4383.          index. If values are changed during the vertical retrace
  4384.          period only no flicker will occur.
  4385.  
  4386.         index register (flipflop reset to 'index'): (default 20h)
  4387.          bit7-6: reserved
  4388.          bit5  : 0=CPU access (screen dark),
  4389.              1=video access to registers
  4390.          bit4-0: index in ATC (0..31)
  4391.  
  4392.         indexed registers in ATC (flipflop set to 'data'): (see #P154)
  4393. 03C1  R-  VGA    ATC index/data read register
  4394. 03C2  R-  EGA VGA input status 0 register
  4395.              (Genoa SuperEGA in all emulation modes)
  4396.              bit6-5 are 'key' protected on ET4000.
  4397.              bit7  : CRT interrupt occured
  4398.                  EGA: 0=vertical retrace in progress, 1=display
  4399.              bit6  : EGA and ET4000: feature control 1 (pin17)
  4400.              bit5  : EGA and ET4000: feature control 0 (pin19)
  4401.              bit4  : DIP switch sense
  4402.                 (0=closed, 1=open/switches readable)
  4403.              bit3-0: reserved
  4404. 03C2  -W  EGA VGA miscellaneous output register (see #P165)
  4405. 03C3  RW  VGA    video subsystem enable (see also port 46E8h)
  4406.         for IBM, motherboard VGA only
  4407.              bit7-4=0: reserved
  4408.              bit3     : select video subsystem (address 46E8h)
  4409.              bit2-1     : reserved
  4410.              bit0     : select video subsystem (address 03C3)
  4411. 03C4  -W  EGA    TS index register
  4412. 03C4  RW  VGA    sequencer index register (see also #P160)
  4413.              bit7-3     : reserved (VGA only)
  4414.              bit2-0     : current TS index
  4415. 03C5  -W  EGA    TS data register
  4416. 03C5  RW  VGA    sequencer data register (see #P160)
  4417. 03C6  RW  (VGA, MCGA) PEL mask register (default FFh)
  4418.          VGA:    AND mask for color-register address.
  4419.          MCGA:    Never change from the default FFh.
  4420. 03C6  RW  HiColor ET4000 (Sierra RAMDACs e.g. SC11486, SC11481, SC11488):
  4421.          Enable HiColor feature: beside other assignments,
  4422.          consequtive read 3C6h 4 times and write magic value 80h to it.
  4423. 03C7  -W  (VGA,MCGA,CEG-VGA) PEL address register (read mode)
  4424.          Sets DAC in read mode and assign start of color register
  4425.          index (0..255) for following read accesses to 3C9h.
  4426.          Don't write to 3C9h while in read mode. Next access to
  4427.          03C8h will stop pending mode immediatly.
  4428. 03C7  -W  (CEG-Color VGA w/ Edsun Labs RAMDACs)
  4429.          Enable and set Countinous Edge Graphics Mode:
  4430.          Consecutive write the following three key sequences in read
  4431.          mode (!) to 3C9h register DEh : 'CEG', 'EDS', 'UNx' (x see
  4432.          below). Current CEG mode can be read from palette register
  4433.          BFh 'blue', write access to that register will disable CEG
  4434.          features.
  4435.          In CEG modes by combining old with new colors and dynamically
  4436.          changing palette values, the effective colors displayable
  4437.          are enhanced dramatically (in EDP modes up to virtually 32bit
  4438.          truecolor) on standard 16/256 color VGA. Also, effective
  4439.          resolution enhancement takes effect by anti-aliasing.
  4440.          Neccessary EDP escape sequences should be moved to image
  4441.          border or single colored areas, if possible.
  4442.  
  4443.          REP-mode: if pixel are doubled in current video mode
  4444.          EDP-mode: pseudo-truecolor with Edsun dynamic palette
  4445.          (see #P170,#P171)
  4446.  
  4447.          Palette-color-register single-byte-format (each 3 times):
  4448.           Mode A:          Mode C:
  4449.            bit7-4: mix code       bit3     : 0=color, 1=code
  4450.            bit3-0: color code       bit2-0: color / mix code
  4451.           Mode B:          Mode D:
  4452.            bit7-5: mix code       bit7-0: see mix code table
  4453.            bit4     : 0=new, 1=old      Non-CEG modes:
  4454.            bit3-0: color code       bit7-0: as usual
  4455.  
  4456.          In EDP modes, video-memory-palette-changing escape-sequences:
  4457.           Mode A:     Mode B:      Mode C:     Mode D:
  4458.            7/escape    7/escape       7/escape    0BFh
  4459.            red           red       red7-4      red
  4460.            green       green       red3-0      green
  4461.            blue           blue       green7-4    blue
  4462.            address     address       green3-0    address
  4463.                        blue7-4
  4464.                        blue3-0
  4465.                        address
  4466. 03C7  R-  VGA    DAC state register
  4467.         bit7-2 reserved
  4468.         bit1-0: 00b write palette cycle (write mode)
  4469.             01h reserved
  4470.             10b reserved
  4471.             11b read palette cycle (read mode)
  4472. 03C8  RW  (VGA,MCGA) PEL address register (write mode)
  4473.          Sets DAC in write mode and assign start of color register
  4474.          index (0..255) for following write accesses to 3C9h.
  4475.          Don't read from 3C9h while in write mode. Next access to
  4476.          03C8h will stop pending mode immediatly.
  4477. 03C8  RW  (Genoa SuperEGA) SuperEGA control register (all emulation modes)
  4478.           bit7-2: reserved
  4479.           bit1    : 0=EGA mode, 1=backward compatibility mode
  4480.           bit0    : not used
  4481. 03C9  RW  (VGA,MCGA) PEL data register
  4482.          Three consequtive reads (in read mode) or writes (in write
  4483.          mode) in the order: red, green, blue. The internal DAC index
  4484.          is incremented each 3rd access.
  4485.           bit7-6: HiColor VGA DACs only: color-value bit7-6
  4486.           bit5-0:             color-value bit5-0
  4487. 03CA  -W  EGA    graphics 2 position register
  4488. 03CA  R-  VGA    feature control register (see PORT 03BAh,PORT 03DAh-W)
  4489. 03CB  RW  (ET4000/W32) GDC segment select register 2 ('key' protected?)
  4490.         The existence of this r/w register 0..255 is often
  4491.          used to decide between ET4000 and ET4000/W32.
  4492.          bit7-6: reserved, but existent
  4493.          bit5-4: bits 5-4 of read segment pointer
  4494.          bit3-2: reserved, but existent
  4495.          bit1-0: bits 5-4 of write segment pointer
  4496. 03CC  -W  EGA    graphics 1 position register
  4497. 03CC  R-  VGA    miscellaneous output register (see PORT 03C2h-W,#P165)
  4498. 03CD  RW  (ET3000, ET4000, ET4000/W32) GDC segment select ('key' protected)
  4499.         The existence of this r/w register is often used as
  4500.         detection of ET3000, ET4000 and ET4000/W32 chips.
  4501.          bit7-4: read segment pointer for mapping to A0000h
  4502.          bit3-0: write segment pointer for mapping to A0000h
  4503. 03CE  -W  EGA    GDC index register
  4504. 03CE  RW  VGA    graphics address register / GDC index
  4505.               bit7-4: reserved
  4506.               bit3-0: index
  4507. 03CF  -W  EGA    GDC data register
  4508. 03CF  RW  VGA    other graphics register (see #P166)
  4509.  
  4510. (Table P154)
  4511. Values for EGA/VGA indexed registers in ATC:
  4512.  00h-0Fh 16 palette registers (see #P155)
  4513.  10h    mode control register (see #P156)
  4514.  11h    (EGA) overscan color register (see #P157) (default: 00h)
  4515.  11h    (VGA) overscan color register (see #P158) (default: 00h)
  4516.  12h    color enable register (see #P159)
  4517.  13h    horizontal pixel panning register
  4518.     bit7-4: reserved
  4519.     bit3-0: horizontal pixel panning
  4520.  14h    (VGA) color select register (default: 00h)
  4521.     bit7-4: reserved
  4522.     bit3  : s-color 7
  4523.     bit2  : s-color 6
  4524.     bit1  : s-color 5 (only with 16 pages á 16 regs)
  4525.     bit0  : s-color 4 (only with 16 pages á 16 regs)
  4526.  16h    ET3000, ET4000 only: ATC miscellanenous
  4527.     (at least on ET4000 'key' protected)
  4528.     This register is also supported by ET3000, but the
  4529.     description is proved for ET4000 only.
  4530.     bit7  : bypass the internal palette
  4531.         (e.g. for HiColor modes with Sierra RAMDACs)
  4532.     bit6  : reserved
  4533.     bit5-4: select high resolution / color mode
  4534.     bit3-0: reserved
  4535. SeeAlso: #P160,#P166
  4536.  
  4537. Bitfields for EGA/VGA indexed ATC palette register:
  4538. Bit(s)    Description    (Table P155)
  4539.  7-6    reserved
  4540.  5    secondary red video
  4541.  4    secondary green/intensity video
  4542.  3    secondary blue/mono video
  4543.  2    primary red video
  4544.  1    primary green video
  4545.  0    primary blue video
  4546. SeeAlso: #P154
  4547.  
  4548. Bitfields for EGA/VGA ATC mode control register:
  4549. Bit(s)    Description    (Table P156)
  4550.  7    (VGA) SB/SG select (0=4 pages of 64 regs, 1=16 pages of 16 regs)
  4551.  6    (VGA) PELCLK/2 (0=4bit color, 1=8bit color)
  4552.  5    (VGA) enable pixel panning (0=all, 1=up to line compare register value)
  4553.  4    reserved
  4554.  3    background intensity (0=16 colors, 1=blink)
  4555.  2    line graphics enable (0=background, 1=line 8=9)
  4556.  1    1=mono, 0=color select
  4557.  0    1=graphics, 0=text select
  4558. SeeAlso: #P154
  4559.  
  4560. Bitfields for EGA overscan color register:
  4561. Bit(s)    Description    (Table P157)
  4562.  7-6    reserved
  4563.  5    secondary red (SR)
  4564.  4    secondary green (SR) / intensity
  4565.  3    secondary blue (SB)
  4566.  2    primary red (PR)
  4567.  1    primary green (PG)
  4568.  0    primary blue (PB)
  4569. SeeAlso: #P154,#P158
  4570.  
  4571. Bitfields for VGA overscan color register:
  4572. Bit(s)    Description    (Table P158)
  4573.  7    secondary intensity border color (SI)
  4574.  6    secondary red (SR)
  4575.  5    secondary green (SG)
  4576.  4    secondary blue (SB)
  4577.  3    intensity border color (PI)
  4578.  2    primary red (PR)
  4579.  1    primary green (PG)
  4580.  0    primary blue (PB)
  4581. SeeAlso: #P154,#P157
  4582.  
  4583. Bitfields for EGA/VGA color enable register:
  4584. Bit(s)    Description    (Table P159)
  4585.  7-6    reserved
  4586.  5-4    diagnose / video status select
  4587.     EGA:        VGA, ET4000:
  4588.     00b = PR/PB       PR/PB
  4589.     01b = SB/PG       SG/SB
  4590.     10b = SR/SG       PI/PG
  4591.     11b = reserved       SI/SR
  4592.  3    enable plane 3
  4593.  2    enable plane 2
  4594.  1    enable plane 1
  4595.  0    enable plane 0
  4596. SeeAlso: #P154 
  4597.  
  4598. (Table P160)
  4599. Values for EGA/VGA indexed TS (sequencer) registers:
  4600.  00h    reset register
  4601.     bit7-2 : reserved
  4602.     bit1 =0: synchronous reset (EGA/VGA)
  4603.     bit0 =0: asynchronous reset (EGA, ET4000)
  4604.          synchronous reset, also (VGA)
  4605.  01h    clocking mode register / TS mode (see #P161)
  4606.  02h    map mask register (see #P162)
  4607.  03h    character map select register / font select (see #P163)
  4608.  04h    memory mode register
  4609.     bit7-4 : reserved
  4610.     bit3 =1: (VGA) enable chain 4 linear graphics mode
  4611.     bit2    : 0=odd/even mode, 1=sequential mode
  4612.     bit1 =1: extended memory (0=64KB, 1=more)
  4613.     bit0    : (EGA) 1=textmode, 0=graphics mode
  4614.  06h    ET3000 only: Zoom control register
  4615.  06h    ET4000 only: TS state control (protected by 'key')
  4616.     bit7-3 : reserved
  4617.     bit2-1 : timing sequencer state bit2-1
  4618.            (bit0 is bit0 TS mode register)
  4619.            00 0b=  9 dots
  4620.            00 1b=  8 dots
  4621.            01 0b= 10      (10-16 are ET4000 only)
  4622.            01 1b= 11
  4623.            10 0b= 12
  4624.            11 1b= 16
  4625.     bit0    : reserved
  4626.  07h    ET3000/ET4000 only: TS auxiliary mode (see #P164)
  4627.  08h    S3 765 (Trio64V): key register -- enable access to S3 extended
  4628.       registers when set to 06h
  4629. ---S3 756 (Trio64V) extended registers---
  4630.  09h    ???
  4631.  0Dh    DPMS
  4632.     bits 7-4: DPMS power mode
  4633.         0000 On
  4634.         0001 Standby
  4635.         0100 Suspend
  4636.         0101 Off    
  4637.     bits 1-0: ???
  4638.  10h    ???  \
  4639.  11h    ???  / paired
  4640.  12h    ???  \
  4641.  13h    ???  / paired
  4642.  15h    ???
  4643.     bit 4: ???
  4644.  18h    bit 5 set while reduced-power modes active
  4645.     bit 7: ???
  4646.  1Ch    bit 0: enable ??? at 000A0000h
  4647.     bit 1: enable ??? at 01000000h
  4648.  
  4649. Bitfields for EGA/VGA sequencer clocking mode register:
  4650. Bit(s)    Description    (Table P161)
  4651.  7-6    reserved
  4652.  5    (VGA) =1: screen refresh off
  4653.  4    (VGA) shift load (0=4x8, 1=1x32)
  4654.  3    dot clock (0=normal, 1=clock/2)
  4655.  2    serial shift video load (0=4x8, 1=2x16)
  4656.  1    (EGA) CRTC bandwidth (0=4/5, 1=2/5)
  4657.  0    dot clocks (0=9, 1=8) (ET4000: see 06h)
  4658. SeeAlso: #P160
  4659.  
  4660. Bitfields for EGA/VGA sequencer map mask register:
  4661. Bit(s)    Description    (Table P162)
  4662.  7-4    reserved
  4663.  4    Genoa SuperEGA only: plane4 ???
  4664.  3    write enable display memory plane 3
  4665.  2    write enable display memory plane 2
  4666.  1    write enable display memory plane 1
  4667.  0    write enable display memory plane 0
  4668. SeeAlso: #P160
  4669.  
  4670. Bitfields for EGA/VGA sequencer character map select register:
  4671. Bit(s)    Description    (Table P163)
  4672.  7-6    reserved
  4673.  5    (VGA) bit3 for 2nd text-font
  4674.  4    (VGA) bit3 for 1st text-font
  4675.  3-2    2nd text-font (attr bit3=1)
  4676.  1-0    1st text-font (attr bit3=0)
  4677.     offset in font memory (4-7: VGA only)
  4678.        0 00b =  0KB
  4679.        0 01b = 16KB
  4680.        0 10b = 32KB
  4681.        0 11b = 48KB
  4682.        1 00b =  8KB
  4683.        1 01b = 24KB
  4684.        1 10b = 40KB
  4685.        1 11b = 56KB
  4686. SeeAlso: #P160
  4687.  
  4688. Bitfields for ET3000/ET4000 sequencer auxiliary mode:
  4689. Bit(s)    Description    (Table P164)
  4690.  7    compatibility mode (1=VGA, 0=EGA)
  4691.  6    select MCLK/2 (with bit0=0)
  4692.  5    BIOS ROM address map 2
  4693.  4    reserved
  4694.  3    BIOS ROM address map 1
  4695.  2    reserved (1)
  4696.  1    select SCLK input from MCLK
  4697.  0    select MCLK/4 (with bit6=1)
  4698.  5+3    ROM address
  4699.     00 C0000-C3FFF
  4700.     01 disabled
  4701.     10 C0000-C5FFF, C6800-C7FFF
  4702.     11 C0000-C7FFF (default)
  4703. Notes:    at least on the ET4000, this register is protected by a 'key'
  4704.     this register is also supported by ET3000, but the above description
  4705.       is based on the ET4000
  4706. SeeAlso: #P160
  4707.  
  4708. Bitfields for EGA/VGA miscellaneous output register:
  4709. Bit(s)    Description    (Table P165)
  4710. ---Genoa SuperEGA in all emulation modes---
  4711.  7-6: vertical resolution
  4712.     00 (EGA) 200 lines
  4713.     01 (VGA) 400 lines
  4714.     10 (EGA/VGA) 350 lines
  4715.     11 (VGA) 480 lines
  4716. ------
  4717.  7    vertical sync polarity (0=positive, 1=negative)
  4718.  6    horizontal sync polarity (0=positive, 1=negative)
  4719.  5    odd/even pagebit
  4720.  4    EGA: 0=video driver on,
  4721.          1=video driver off (feature connector used)
  4722.  3-2    pixelclock
  4723.     00 14/25MHz (EGA/VGA)
  4724.     01 16/28Mhz (EGA/VGA)
  4725.     10 (EGA/VGA) external clock (EGA)
  4726.     11 (EGA/VGA) reserved
  4727.     10 (Genoa SuperEGA) 39Mhz
  4728.     11 (Genoa SuperEGA) 26.824Mhz
  4729.  1    enable CPU RAM access
  4730.  0    CRTC port address
  4731.     0=3B4 mono
  4732.     1=3D4 color
  4733.        (color EGA: enable feature control at 3DAh,status reg 1 at 3D2h)
  4734.  
  4735. Bitfields for EGA/VGA indexed registers in GDC:
  4736. Bit(s)    Description    (Table P166)
  4737.  00h    set/reset register (default 00h)
  4738.     functionality depending on write mode (register 05h) (see #P169)
  4739.     bit7-4: reserved
  4740.     bit3  : 0=write 00h, 1=write FFh in plane 3
  4741.     bit2  : 0=write 00h, 1=write FFh in plane 2
  4742.     bit1  : 0=write 00h, 1=write FFh in plane 1
  4743.     bit0  : 0=write 00h, 1=write FFh in plane 0
  4744.  01h    enable set/reset register (default 00h) (see #P167)
  4745.  02h    color compare register (default 00h) (see #P168)
  4746.  03h    data rotate register (default 00h)
  4747.     bit7-5: reserved
  4748.     bit4-3: logical function select
  4749.         00b= CPU-data overwrites
  4750.         01b= CPU-data AND with latch-register
  4751.         10b= CPU-data OR with latch-register
  4752.         11b= CPU-data XOR with latch-register
  4753.     bit2-0: rotate count
  4754.  04h    read map select register (default 00h)
  4755.     bit7-3: reserved
  4756.     bit2  : EGA?? & Genoa SuperEGA: map select bit2
  4757.     bit1-0: map select (0..3)
  4758.  05h    mode register (see #P169)
  4759.  06h    miscellaneous register
  4760.     bit7-4: reserved (=0)
  4761.     bit3-2: memory map
  4762.            00b = A0000..BFFFF (128KB)
  4763.            01b = A0000..AFFFF (64KB)
  4764.            10b = B0000..B7FFF (32KB)
  4765.            11b = B8000..BFFFF (32KB)
  4766.     bit1  : chain odd maps to even, 1=subst addess bit0
  4767.     bit0  : 0=testmode, 1=graphics mode
  4768.  07h    color don't care register
  4769.     bit7-4: reserved
  4770.     bit3=1: color plane 3 don't care (ignore bit3)
  4771.     bit2=1: color plane 2 don't care (ignore bit2)
  4772.     bit1=1: color plane 1 don't care (ignore bit1)
  4773.     bit0=1: color plane 0 don't care (ignore bit0)
  4774.  08h    bit mask register (default FFh)
  4775.     bit7-0: bitmask for latch/databyte
  4776.           (bit set=change allowed)
  4777.  0Fh    (Paradise SuperVGA) lock register
  4778.     The ability to write and reread 00h..07h to this register
  4779.     is often used as detection of Paradise chips.
  4780.     bit7-0 = 01h lock/hide Paradise specific registers
  4781.            = 05h unlock Paradise specific registers
  4782.     bit7-3: reserved
  4783.     bit2-0: flipflops, reserved
  4784.  
  4785. Bitfields for EGA/VGA GDC enable set/reset register:
  4786. Bit(s)    Description    (Table P167)
  4787.  7-4    reserved (used on Genoa SuperEGA???)
  4788.  3    enable set/reset plane 3
  4789.  2    enable set/reset plane 2
  4790.  1    enable set/reset plane 1
  4791.  0    enable set/reset plane 0
  4792.  3-0    0=CPU access, 1=set/reset access to plane
  4793. SeeAlso: #P166
  4794.  
  4795. Bitfields for EGA/VGA GDC color compare register:
  4796. Bit(s)    Description    (Table P168)
  4797.  7-4    reserved
  4798.  3    color compare 3
  4799.  2    color compare 2
  4800.  1    color compare 1
  4801.  0    color compare 0
  4802.  3-0    (color number)
  4803. SeeAlso: #P166
  4804.  
  4805. Bitfields for EGA/VGA GDC mode register:
  4806. Bit(s)    Description    (Table P169)
  4807.  7    reserved
  4808.  6    (VGA) 0=standard, 1=enable 256 colors
  4809.  5    shift register mode, 0=standard, 1=CGA-graphics
  4810.       (not used on Genoa SuperEGA???)
  4811.  4=1    enable odd/even address mode
  4812.  3    read mode, 0=mode0, 1=mode1
  4813.  2    (EGA) test condition, 0=standard, 1=output tristate
  4814.  1-0    write mode
  4815.     00 mode0, plane source is CPU or set/reset
  4816.     01 mode1, plane source is latch-register
  4817.     10 mode2, plane source is CPU as set/reset
  4818.     11 (VGA) mode3, CPU as set/reset AND bitmask
  4819. SeeAlso: #P166
  4820.  
  4821. (Table P170)
  4822. Values for EDSUN CEG (Continuous Edge Graphics) modes::
  4823.  x:  mode:     colors:  mix:    pixel depth:  effective colors:
  4824.  0 = disabled       256       -         8            256
  4825.  1 = A            16      16         8           1920
  4826.  2 = A+REP        16      16      8 dblscn       1920
  4827.  3 = A+EDP        15      16            truecolor
  4828.  4 = reserved         -       -         -             -
  4829.  5 = B            16       8         8            960
  4830.  6 = B+REP        16       8      8 dblscn        960
  4831.  7 = B+EDP        15       8            truecolor
  4832.  8 = reserved         -       -         -             -
  4833.  9 = C             8       8         4            224
  4834.  10 = C+REP         8       8      4 dblscn        224
  4835.  11 = C+EDP         7       8            truecolor
  4836.  12 = reserved         -       -         -             -
  4837.  13 = D           223      32         8         792096
  4838.  14 = D+REP       223      32      8 dblscn     792096
  4839.  15 = D+EDP       223      32            truecolor
  4840. SeeAlso: #P171
  4841.  
  4842. (Table P171)
  4843. Values for EDSUN CEG mixing codes:
  4844.  Mode A:           |  Mode C:
  4845.  mix: new:    old:   |   mix: new:   old:   colorcode:
  4846.    0 = 32/32    0/32   |    0 =      -     -     0
  4847.    1 = 30/32    2/32   |    1 =      -     -     1
  4848.    2 = 28/32    4/32   |    2 =      -     -     2
  4849.    3 = 26/32    6/32   |    3 =      -     -     3
  4850.    4 = 24/32    8/32   |    4 =      -     -     4
  4851.    5 = 22/32   10/32   |    5 =      -     -     5
  4852.    6 = 20/32   12/32   |    6 =      -     -     6
  4853.    7 = 18/32   14/32   |    7 =      -     -     7/EDP
  4854.    8 = 16/32   16/32   |    8 = 30/32    2/32   -
  4855.    9 = 14/32   18/32   |    9 = 28/32    4/32   -
  4856.   10 = 12/32   20/32   |   10 = 26/32    6/32   -
  4857.   11 = 10/32   22/32   |   11 = 24/32    8/32   -
  4858.   12 =    8/32   24/32   |   12 = 22/32  10/32   -
  4859.   13 =    6/32   26/32   |   13 = 20/32  12/32   -
  4860.   14 =    4/32   28/32   |   14 = 18/32  14/32   -
  4861.   15 =    2/32   30/32   |   15 = 16/32  16/32   -
  4862. ---Mode B:           |  Mode D:
  4863.  mix: new:    old:   |   mix:          new:   old:  description:
  4864.    0 = 30/32    2/32   |   00h..BEh =    -      -   normal color
  4865.    1 = 26/32    6/32   |   BFh        =    -      -   EDP
  4866.    2 = 22/32   10/32   |   C0h        = 32/32   0/32
  4867.    3 = 18/32   14/32   |   C1h        = 31/32   1/32
  4868.    4 = 14/32   18/32   |   C2h        = 30/32   2/32
  4869.    5 = 10/32   22/32   |   ...        =  ...    ...
  4870.    6 =    6/32   26/32   |   DFh        =  0/32  32/32
  4871.    7 =    2/32   30/32   |   E0h-FFh  =    -      -   normal color
  4872. SeeAlso: #P170
  4873. ----------P03CE03CF--------------------------
  4874. PORT 03CE-03CF - Compaq Qvision - Functionality Level
  4875.  
  4876. 03CE  -W  graphics address register (index for next port) (see #P172)
  4877. 03CF  RW  other graphics register
  4878.  
  4879. (Table P172)
  4880. Values for Compaq QVision graphics register index:
  4881.  0Ch  RO    controller version
  4882.         2Fh Advanced VGA
  4883.         37h early QVision 1024
  4884.         71h QVision 1280 or later QVision 1024
  4885.  0Dh        extended controller version
  4886.  0Eh        extended controller capabilities
  4887.  0Fh        environment info
  4888.  54h        available memory
  4889.  55h        phase-locked-loop clock
  4890.  56h-57h    controller capabilities
  4891. ----------P03D003DF--------------------------
  4892. PORT 03D0-03DF - CGA   (Color Graphics Adapter)
  4893.  
  4894. 03D0  -W  same as PORT 03D4h
  4895. 03D1  RW  same as PORT 03D5h
  4896. 03D2  -W  same as PORT 03D4h
  4897. 03D3  RW  same as PORT 03D5h
  4898. 03D4  rW  CRT (6845) index register   (CGA/MCGA/color EGA/color VGA)
  4899.     selects which register (0-11h) is to be accessed through 03D5
  4900.     this port is r/w on some VGA, e.g. ET4000
  4901.         bit 7-6 =0: (VGA) reserved
  4902.         bit 5   =0: (VGA) reserved for testage
  4903.         bit 4-0   : selects which register is to be accessed through 03D5
  4904. 03D5  -W  CRT (6845) data register    (CGA/MCGA/color EGA/color VGA)
  4905.     selected by port 03D4h. registers 0C-0F may be read
  4906.       (see also PORT 03B5h)
  4907.     MCGA, native EGA and VGA use very different defaults from those
  4908.       mentioned for the other adapters; for additional notes and
  4909.       registers 00h-0Fh and EGA/VGA registers 10h-18h and ET4000
  4910.       registers 32h-37h see PORT 03B5h (see #P137)
  4911.     registers 10h-11h on CGA, EGA, VGA and 12h-14h on EGA, VGA are
  4912.       conflictive with MCGA (see #P173)
  4913. 03D6  -W  same as 03D4
  4914.     (under OS/2, reads return 0 if full-screen DOS session,
  4915.       nonzero if windowed DOS session)
  4916. 03D7  RW  same as 03D5
  4917. 03D8  RW  CGA mode control register  (except PCjr) (see #P178)
  4918.     cannot be found on native color EGA, color VGA, but on most clones
  4919. 03D9  RW  CGA palette register (see #P180)
  4920.     (MCGA) CGA border control register
  4921.     Cannot be found on native EGA, VGA (without translation ROM) but
  4922.       only most clones. Read access on Genoa SuperEGA is 'reset'???
  4923. 03DA  R-  CGA status register (see #P179)
  4924.     color EGA/VGA: input status 1 register
  4925. 03DA  -W  color EGA/color VGA feature control register (see #P181)
  4926.     (at PORT 03BAh w in mono mode, VGA: 3CAh r)
  4927. 03DA  -W  HZ309 (MDA/HGC/CGA clone) card from in Heath/Zenith HZ150 PC
  4928.     bit7-1=0: unknown, zero is default and known to function
  4929.            properly at least in CGA modes.
  4930.     bit 0 = 1 override 3x8h bit3 control register that switches
  4931.            CRT beam off if bit3 is cleared. So screens always
  4932.            stays on.
  4933.     bit 0 = 0 3x8h bit3 indicates if CRT beam is on or off.
  4934.            No more info available. Might conflict with EGA/VGA.
  4935. 03DB  rW  clear light pen latch    (not MCGA)
  4936.           (R/W only with Genoa SuperEGA)
  4937. 03DC  RW  (not MCGA) preset light pen latch
  4938. 03DC  -W  (CGA) set light pen latch
  4939. 03DD  -W  (MCGA)  Extended mode control register
  4940.       (Plantronics & Genoa SuperEGA: Plantronics ColorPlus control,
  4941.               compatible with MCGA???)
  4942.     (default is 00h, in mode 13h: 04h)
  4943.     bit7 =1: DAC active, cannot be read
  4944.          =0: DAC not active, read allowed
  4945.     bit6-3 : reserved
  4946.     bit2 =1: videomode 13h with 256 colors active
  4947.     bit1    : reserved
  4948.     bit0 =0: reserved
  4949. 03DE  --  (MCGA) reserved
  4950. 03DE  -W  AT&T & color ET4000 in AT&T compatibility mode: AT&T mode control
  4951.       register (see #P182)
  4952.     (register enabled in ET4000, if bit7=1 in CRTC 3D4h/34h.)
  4953. 03DF  --  (MCGA) reserved
  4954. 03DF  ?W  CRT/CPU page register     (PCjr only)
  4955.  
  4956. (Table P173)
  4957. Values for MCGA (only) CRT Controller register index:
  4958.  10h  W mode control register (defaults 18h, 1Ah, 19h) (see #P174)
  4959.  10h R    mode control status register (see #P175)
  4960.  11h    interrupt control register (default 30h) (see #P176)
  4961.  12h    character generator/sync polarity register (see #P177)
  4962.  12h R    display sense register (11h, bit7=1)
  4963.     bit 7-2     : not used
  4964.     bit 1-0     : pins 11 & 12 in monitor cable
  4965.         00b = reserved
  4966.         01b = analogue monochrom monitor
  4967.         10b = analogue color graphics monitor
  4968.         11b = no monitor
  4969.  13h W    character font pointer register
  4970.     only 00h, 10h, 20h, 30h (default 00h) are allowed here
  4971.       for textmode fonts at A0000, A2000, A4000, A6000
  4972.  14h W    number of characters to load during vert. retrace period (default FFh)
  4973. SeeAlso: #P137
  4974.  
  4975. Bitfields for MCGA (only) CRT mode control register:
  4976. Bit(s)    Description    (Table P174)
  4977.  7    suppress hsync/vsync
  4978.  6    reserved (0)
  4979.  5    reserved
  4980.  4    dot clock rate
  4981.  3    refresh calculations in 80x25 modes
  4982.  2    reserved
  4983.  1    videomode 11h active
  4984.  0    videomode 13h active
  4985. SeeAlso: #P173,#P175
  4986.  
  4987. Bitfields for MCGA (only) CRT mode control status register:
  4988. Bit(s)    Description    (Table P175)
  4989.  7    status bit0 CGA mode control register
  4990.  6    reserved
  4991.  5    clockrate 640 pixel, =0: clockrate/2 320 pixel
  4992.  4    clock rate is 25,175Mhz
  4993.  3    currently in textmode
  4994.  2    double-scan activated
  4995.  1    videomode 11h active
  4996.  0    videomode 13h active
  4997. SeeAlso: #P173,#P174
  4998.  
  4999. Bitfields for MCGA (only) CRT interrupt control register:
  5000. Bit(s)    Description    (Table P176)
  5001.  7    set output driver to tristate
  5002.     =0: for reading of character generator reg (12h)
  5003.     =1: for reading of display sense register (12h)
  5004.  6   R    intr generated by memory controller
  5005.  5    =0 requested intr ok to handle
  5006.  4    =0 free interrupt latch register
  5007.  3-0    reserved
  5008. SeeAlso: #P173
  5009.  
  5010. Bitfields for MCGA (only) CRT character generator/sync polarity register:
  5011. Bit(s)    Description    (Table P177)
  5012.  7    character generator active
  5013.  6    =1 load codepage during display
  5014.     =0 load codepage during retrace
  5015.  5    codepage number (0,1)
  5016.  4    512 characters active
  5017.  3    reserved (0)
  5018.  2    enable hsync/vsync
  5019.  1    positive vsync polarity
  5020.  0    positive hsync polarity
  5021. Note:    default 46h in all modes, except 04h in mode 11h)
  5022. SeeAlso: #P173
  5023.  
  5024. Bitfields for CGA mode control register:
  5025. Bit(s)    Description    (Table P178)
  5026.  7-0    =A0h color ET4000: second part of 'key', see Hercules compatibility
  5027.       register (see PORT 03BFh) for details. For resetting the key, e.g.
  5028.       write 01h to PORT 03BFh and 29h to PORT 03D8h.
  5029.  7-6    not used
  5030.  6    color ET4000 only, read-only: report status of bit 1 (enable 2nd page)
  5031.       of hercules compatibility register (see PORT 03BFh)
  5032.  5    =1  blink enabled instead of foreground high-int.
  5033.  4    =1  640*200 graphics mode
  5034.  3    =1  video enabled (HZ309, see PORT 03DAh bit 0)
  5035.  2    =1  monochrome signal
  5036.                    (MCGA) in mode 6 and 11h color comes from pal-
  5037.                    regs 00 (black) and 07 (white), and can be
  5038.                    changed there.
  5039.  1    =0  text mode
  5040.     =1  320*200 graphics mode
  5041.  0    text columns (0 = 40*25 text mode, 1 = 80*25 text mode)
  5042. SeeAlso: #P179
  5043.  
  5044. Bitfields for CGA status register:
  5045. Bit(s)    Description    (Table P179)
  5046.  7-6    not used
  5047.  5-4    color EGA, color ET4000: diagnose video display feedback, select
  5048.       from color plane enable
  5049.  3    in vertical retrace
  5050.  2    (CGA,color EGA) light pen switch is off
  5051.     (MCGA,color ET4000) reserved (0)
  5052.  1    (CGA,color EGA) positive edge from light pen has set trigger
  5053.     (MCGA,color ET4000) reserved (0)
  5054.  0    horizontal retrace in progress
  5055.     =0  do not use memory
  5056.     =1  memory access without interfering with display
  5057.         (Genoa SuperEGA) horizontal or vertical retrace
  5058. SeeAlso: #P178,#P180
  5059.  
  5060. Bitfields for CGA palette register:
  5061. Bit(s)    Description    (Table P180)
  5062.  7-6    not used
  5063.  5    =0 active 320x200x4 color set: red, green brown
  5064.     =1 active 320x200x4 color set: cyan, magenta, white
  5065.  4    intense colors in graphics, background colors text
  5066.  3    intense border in 40*25, intense background in 320*200, intense
  5067.       foreground in 640*200
  5068.  2    red border in 40*25, red background in 320*200,    red foreground in
  5069.       640*200
  5070.  1    green border in 40*25, green background in 320*200, green foreground
  5071.       in 640*200
  5072.  0    blue border in 40*25, blue background in 320*200, blue foreground in
  5073.        640*200
  5074. SeeAlso: #P178,#P179 
  5075.  
  5076. Bitfields for color EGA/VGA feature control register:
  5077. Bit(s)    Description    (Table P181)
  5078.  7    ET4000 only: enable NMI generation ('key' protected)
  5079.  6-4    not used
  5080.  3    (VGA) 0 = normal vsync, 1 = vsync OR display enable
  5081.  2    reserved
  5082.  1    EGA and ET4000 only: FEAT1 control bit1 (pin17 feature connector)
  5083.  0    EGA and ET4000 only: FEAT0 control bit0 (pin19 feature connector)
  5084.  
  5085. Bitfields for AT&T mode control register:
  5086. Bit(s)    Description    (Table P182)
  5087.  7    reserved
  5088.  6    underline color attribute enable
  5089.     ET4000: enabled, if bit6=1 in CRTC 3D4h/34h.
  5090.  5    reserved
  5091.  4    reserved
  5092.  3    alternate page select (=1: 2nd 16KB page, with bit0=0)
  5093.  2    alternate font select (0=default font block)
  5094.  1    reserved
  5095.  0    double scan line mode (0=IBM 200, 1=AT&T 400 line graphics)
  5096.     (ET4000) enabled, if bit7-6=11b in CRTC 3D4h/34h.
  5097. ----------P03E003E8--------------------------
  5098. PORT 03E0-03E8    - LPT port address on the UniRAM card by German magazine c't
  5099. Range:    selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  5100. ----------P03E003EF--------------------------
  5101. PORT 03E0-03EF - COM port addresses on UniRAM card by German magazine c't
  5102. Range:    selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  5103. ----------P03E803EF--------------------------
  5104. PORT 03E8-03EF - serial port, same as 02E8, 02F8 and 03F8 (COM3)
  5105. SeeAlso: PORT 03F8h-03FFh
  5106. ----------P03E803EF--------------------------
  5107. PORT 03E8-03EF    -  LPT port address on the UniRAM card by German magazine c't
  5108. Range:    selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  5109. ----------P03EB------------------------------
  5110. PORT 03EB - GI1904 Scanner Interface Adapter
  5111. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  5112.       PORT 036Bh, PORT 03ABh
  5113. ----------P03EC------------------------------
  5114. PORT 03EC - GS-IF Scanner Interface adapter
  5115. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  5116.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  5117. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  5118.       others use this interface
  5119. ----------P03F003F7--------------------------
  5120. PORT 03F0-03F7 - FDC 1    (1st Floppy Disk Controller)    second FDC at 0370
  5121. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  5122.       compatible), or an 82072 or 82077AA for perpendicular recording at
  5123.       2.88M
  5124. SeeAlso: PORT 0370h-0377h
  5125.  
  5126. 03F0  R-  diskette controller status A (PS/2) (see #P183)
  5127. 03F0  R-  diskette controller status A (PS/2 model 30) (see #P184)
  5128. 03F0  R-  diskette EHD controller board jumper settings (82072AA) (see #P185)
  5129. 03F1  R-  diskette controller status B (PS/2) (see #P186)
  5130. 03F1  R-  diskette controller status B (PS/2 model 30) (see #P187)
  5131. 03F2  -W  diskette controller DOR (Digital Output Register) (see #P188)
  5132. 03F3  ?W  tape drive register (on the 82077AA)
  5133.     bit 7-2     reserved, tri-state
  5134.     bit 1-0     tape select
  5135.         =00  none, drive 0 cannot be a tape drive.
  5136.         =01  drive1
  5137.         =10  drive2
  5138.         =11  drive3
  5139. 03F4  R-  diskette controller main status register (see #P191)
  5140.     Note:    in non-DMA mode, all data transfers occur through
  5141.           PORT 03F5h and the status registers (bit 5 here
  5142.           indicates data read/write rather than than
  5143.           command/status read/write)
  5144. 03F4  -W  diskette controller data rate select register (see #P192)
  5145. 03F5  R-  diskette command/data register 0 (ST0) (see #P193)
  5146.     status register 1 (ST1) (see #P194)
  5147.     status register 2 (ST2) (see #P195)
  5148.     status register 3 (ST3) (see #P196)
  5149. 03F5  -W  diskette command register.  The commands summarized here are
  5150.       mostly multibyte commands. This is for brief recognition only.
  5151.       (see #P199)
  5152. 03F6  --  reserved on FDC
  5153. 03F6  rW  FIXED disk controller data register (see #P197)
  5154. 03F7  RW  harddisk controller (see #P198)
  5155. 03F7  R-  diskette controller DIR (Digital Input Register, PC/AT mode)
  5156.          bit 7 = 1 diskette change
  5157.          bit 6-0   tri-state on FDC
  5158. 03F7  R-  diskette controller DIR (Digital Input Register, PS/2 mode)
  5159.       (see #P189)
  5160. 03F7  R-  diskette controller DIR (Digital Input Register, PS/2 model 30)
  5161.       (see #P190)
  5162. 03F7  -W  configuration control register (PC/AT, PS/2)
  5163.          bit 7-2       reserved, tri-state
  5164.          bit 1-0 = 00  500 Kb/S mode (MFM)
  5165.              = 01  300 Kb/S mode (MFM)
  5166.              = 10  250 Kb/S mode (MFM)
  5167.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  5168.     conflict bit 0       FIXED DISK drive 0 select
  5169. 03F7  -W  configuration control register (PS/2 model 30)
  5170.          bit 7-3       reserved, tri-state
  5171.          bit 2           NOPREC (has no function. set to 0 by hardreset)
  5172.          bit 1-0 = 00  500 Kb/S mode (MFM)
  5173.              = 01  300 Kb/S mode (MFM)
  5174.              = 10  250 Kb/S mode (MFM)
  5175.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  5176.     conflict bit 0       FIXED DISK drive 0 select
  5177.  
  5178. Bitfields for diskette controller status A (PS/2):
  5179. Bit(s)    Description    (Table P183)
  5180.  7    interrupt pending
  5181.  6    -DRV2    second drive installed
  5182.  5    step
  5183.  4    -track 0
  5184.  3    head 1 select
  5185.  2    -index
  5186.  1    -write protect
  5187.  0    +direction
  5188. SeeAlso: #P184,#P186
  5189.  
  5190. Bitfields for diskette controller status A (PS/2 model 30):
  5191. Bit(s)    Description    (Table P184)
  5192.  7    interrupt pending
  5193.  6    DRQ
  5194.  5    step F/F
  5195.  4    -track 0
  5196.  3    head 1 select
  5197.  2    +index
  5198.  1    +write protect
  5199.  0    -direction
  5200. SeeAlso: #P183,#P185,#P187
  5201.  
  5202. Bitfields for diskette EHD controller board jumper settings:
  5203. Bit(s)    Description    (Table P185)
  5204.  7-6    drive 3
  5205.  5-4    drive 2
  5206.  3-2    drive 1
  5207.  1-0    drive 0
  5208.      00  1.2Mb
  5209.      01  720Kb
  5210.      10  2.8Mb
  5211.      11  1.4Mb
  5212. SeeAlso: #P183
  5213.  
  5214. Bitfields for diskette controller status B (PS/2):
  5215. Bit(s)    Description    (Table P186)
  5216.  7-6    reserved (1)
  5217.  5    drive select (0=A:, 1=B:)
  5218.  4    write data
  5219.  3    read data
  5220.  2    write enable
  5221.  1    motor enable 1
  5222.  0    motor enable 0
  5223. SeeAlso: #P183,#P187
  5224.  
  5225. Bitfields for diskette controller status B (PS/2 model 30):
  5226. Bit(s)    Description    (Table P187)
  5227.  7    -DRV2 second drive installed
  5228.  6    -DS1
  5229.  5    -DS0
  5230.  4    write data F/F
  5231.  3    read data F/F
  5232.  2    write enable F/F
  5233.  1    -DS3
  5234.  0    -DS2
  5235. SeeAlso: #P184,#P186
  5236.  
  5237. Bitfields for diskette controller Digital Output Register (DOR):
  5238. Bit(s)    Description    (Table P188)
  5239.  7-6    reserved on PS/2
  5240.  7    drive 3 motor enable
  5241.  6    drive 2 motor enable
  5242.  5    drive 1 motor enable
  5243.  4    drive 0 motor enable
  5244.  3    diskette DMA enable (reserved PS/2)
  5245.  2    =1  FDC enable    (controller reset)
  5246.     =0  hold FDC at reset
  5247.  1-0    drive select (0=A 1=B ..)
  5248. SeeAlso: #P183,#P191,#P192,#P189
  5249.  
  5250. Bitfields for diskette controller Digital Input Register (PS/2 mode):
  5251. Bit(s)    Description    (Table P189)
  5252.  7    = 1 diskette change
  5253.  6-3    = 1
  5254.  2    datarate select1
  5255.  1    datarate select0
  5256.  0    = 0 high density select (500Kb/s, 1Mb/s)
  5257.  0    (conflict) FIXED DISK drive 0 select
  5258. SeeAlso: #P190,#P188
  5259.  
  5260. Bitfields for diskette controller Digital Input Register (PS/2 model 30):
  5261. Bit(s)    Description    (Table P190)
  5262.  7    = 0 diskette change
  5263.  6-4    = 0
  5264.  3    -DMA gate (value from DOR register)
  5265.  2    NOPREC (value from CCR register)
  5266.  1    datarate select1
  5267.  0    datarate select0
  5268.  0    (conflict) FIXED DISK drive 0 select
  5269. SeeAlso: #P189
  5270.  
  5271. Bitfields for diskette controller main status register:
  5272. Bit(s)    Description    (Table P191)
  5273.  7    =1  RQM     data register is ready
  5274.     =0  no access is permitted
  5275.  6    =1  transfer is from controller to system
  5276.     =0  transfer is from system to controller
  5277.  5    non-DMA mode
  5278.  4    diskette controller is busy
  5279.  3    drive 3 busy (reserved on PS/2)
  5280.  2    drive 2 busy (reserved on PS/2)
  5281.  1    drive 1 busy (= drive is in seek mode)
  5282.  0    drive 0 busy (= drive is in seek mode)
  5283. SeeAlso: #P188
  5284.  
  5285. Bitfields for diskette controller data rate select register:
  5286. Bit(s)    Description    (Table P192)
  5287.  7-2    reserved on 8272
  5288.  7    software reset (self clearing)    82072/82077AA
  5289.  6    power down            82072/82077AA
  5290.  5    (8272/82077AA) reserved (0)
  5291.     (82072) PLL select bit
  5292.  4-2    write precompensation value, 000 default
  5293.  1-0    data rate select
  5294.     =00  500 Kb/S MFM    250 Kb/S FM
  5295.     =01  300 Kb/S MFM    150 Kb/S FM
  5296.     =10  250 Kb/S MFM    125 Kb/S FM
  5297.     =11  1Mb/S    MFM    illegal     FM on 8207x
  5298. SeeAlso: #P188
  5299.  
  5300. Bitfields for diskette command/data register 0 (ST0):
  5301. Bit(s)    Description    (Table P193)
  5302.  7-6    last command status
  5303.     00  command terminated successfully
  5304.     01  command terminated abnormally
  5305.     10  invalid command
  5306.     11  terminated abnormally by change in ready signal
  5307.  5    seek completed
  5308.  4    equipment check occurred after error
  5309.  3    not ready
  5310.  2    head number at interrupt
  5311.  1-0    unit select (0=A 1=B .. ) (on PS/2: 01=A  10=B)
  5312. SeeAlso: #P194,#P195,#P196
  5313.  
  5314. Bitfields for diskette status register 1 (ST1):
  5315. Bit(s)    Description    (Table P194)
  5316.  7    end of cylinder; sector# greater then sectors/track
  5317.  6    =0
  5318.  5    CRC error in ID or data field
  5319.  4    overrun
  5320.  3    =0
  5321.  2    sector ID not found
  5322.  1    write protect detected during write
  5323.  0    ID address mark not found
  5324. SeeAlso: #P193,#P195,#P196
  5325.  
  5326. Bitfields for diskette status register 2 (ST2):
  5327. Bit(s)    Description    (Table P195)
  5328.  7    =0
  5329.  6    deleted Data Address Mark detected
  5330.  5    CRC error in data
  5331.  4    wrong cylinder detected
  5332.  3    scan command equal condition satisfied
  5333.  2    scan command failed, sector not found
  5334.  1    bad cylinder, ID not found
  5335.  0    missing Data Address Mark 
  5336. SeeAlso: #P193,#P194,#P196
  5337.  
  5338. Bitfields for diskette status register 3 (ST3):
  5339. Bit(s)    Description    (Table P196)
  5340.  7    fault status signal
  5341.  6    write protect status
  5342.  5    ready status
  5343.  4    track zero status
  5344.  3    two sided status signal
  5345.  2    side select (head select)
  5346.  1-0    unit select (0=A 1=B .. )
  5347. SeeAlso: #P193,#P194,#P195
  5348.  
  5349. Bitfields for fixed disk controller data register:
  5350. Bit(s)    Description    (Table P197)
  5351.  7-4    reserved
  5352.  3    =0  reduce write current
  5353.     =1  head select 3 enable
  5354.  2    disk reset enable
  5355.  1    disk initialization disable
  5356.  0    reserved
  5357. SeeAlso: #P188,#P198
  5358.  
  5359. Bitfields for hard disk controller:
  5360. Bit(s)    Description    (Table P198)
  5361.  6    FIXED DISK write gate
  5362.  5    FIXED DISK head select 3 / reduced write current
  5363.  4    FIXED DISK head select 2
  5364.  3    FIXED DISK head select 1
  5365.  2    FIXED DISK head select 0
  5366.  1    FIXED DISK drive 1 select
  5367.  0    FIXED DISK drive 0 select
  5368. SeeAlso: #P197
  5369.  
  5370. (Table P199)
  5371. Values for diskette commands:
  5372.     MFM = MFM mode selected, opposite of MF mode
  5373.     HDS = head select
  5374.     DS  = drive select
  5375.     MT  = multi track operation
  5376.     SK  = skip deleted data address mark
  5377.    Command         # bytes    D7  6    5   4    3   2    1   0
  5378.  read track        9    0  MFM    0   0    0   0    1   0
  5379.                 0   0    0   0    0 HDS DS1 DS0
  5380.  specify        3    0   0    0   O    O   O    1   1
  5381.  sense drive status    2    0   0    0   0    0   1    0   0
  5382.                 0   0    0   0    0 HDS DS1 DS0
  5383.  write data        9    MT MFM    0   0    0   1    0   1
  5384.                 0   0    0   0    0 HDS DS1 DS0
  5385.  read data        9    MT MFM SK   0    0   1    1   0
  5386.                 0   0    0   0    0 HDS DS1 DS0
  5387.  recalibrate        2    0   0    0   0    0   1    1   1
  5388.                 0   0    0   0    0   0 DS1 DS0
  5389.  sense interrupt status 1    0   0    0   0    1   0    0   0
  5390.  write deleted data    9    MT MFM    0   0    1   0    0   1
  5391.                 0   0    0   0    0 HDS DS1 DS0
  5392.  read ID        2    0  MFM    0   0    1   0    1   0
  5393.                 0   0    0   0    0 HDS DS1 DS0
  5394.  read deleted data    9    MT MFM SK   0    1   1    0   0
  5395.                 0   0    0   0    0 HDS DS1 DS0
  5396.  format track        10    0  MFM    0   0    1   1    0   1
  5397.                 0   0    0   0    0 HDS DS1 DS0
  5398.  dumpreg **        1    0   0    0   0    1   1    1   0
  5399.  seek            3    0   0    0   0    1   1    1   1
  5400.                 0   0    0   0    0 HDS DS1 DS0
  5401.  version **        1    0   0    0   1    0   0    0   0
  5402.  scan equal *        9    MT MFM SK   1    0   0    0   1
  5403.                 0   0    0   0    0 HDS DS1 DS0
  5404.  perpendicular mode **    2    0   0    0   1    0   0    1   0
  5405.                 0   0    0   0    0   0 WGATE GAP
  5406.  configure **        4    0   0    0   1    0   0    1   1
  5407.                 0   0    0   0    0   0    0   0
  5408.  verify            9    MT MFM SK   1    0   1    1   0
  5409.                 EC  0    0   0    0 HDS DS1 DS0
  5410.  scan low or equal *    9    MT MFM SK   1    1   0    0   1
  5411.                 0   0    0   0    0 HDS DS1 DS0
  5412.  scan high or equal *    9    MT MFM SK   1    1   1    0   1
  5413.                 0   0    0   0    0 HDS DS1 DS0
  5414.  relative seek **    3    1  DIR    0   0    1   1    1   1
  5415.                 0   0    0   0    0 HDS DS1 DS0
  5416. BEWARE: not every invalid command is treated as invalid!
  5417.  *  Note: the scan commands aren't mentioned for the 82077AA.
  5418.  ** Note: EHD controller commands.
  5419. ----------P03F003F1--------------------------
  5420. PORT 03F0-03F1 - PCTech RZ1000 IDE controller
  5421. Note:    to unlock access to these ports instead of the standard floppy
  5422.       controller status ports at these two addresses, you must perform
  5423.       two immediately successive 8-bit OUTs of 55h to port 03F0h (there
  5424.       is a fairly small time limit between the two accesses, so there
  5425.       should be no other instructions between the two OUTs); after
  5426.       that, values written to port 03F0h select the data accessed through
  5427.       port 03F1h until an AAh is written to 03F0h
  5428. SeeAlso: #0629
  5429.  
  5430. 03F0  ?W  index port (see #P200)
  5431. 03F1  RW  data port
  5432.  
  5433. (Table P200)
  5434. Values for RZ1000 IDE controller registers:
  5435.  00h    ???
  5436.     bit 7:
  5437.     bit 1:
  5438.     bit 0:
  5439.  01h    ???
  5440.  02h    ???
  5441.  03h    ???
  5442.  04h    ???
  5443.  05h    ???
  5444.     bit 1:
  5445.  AAh    lock control port
  5446. ----------P03F803FF--------------------------
  5447. PORT 03F8-03FF - Serial port (8250,8250A,8251,16450,16550,16550A,etc.) COM1
  5448. Range:    PORT 02E8h-02EFh (COM2), PORT 02F8h-02FFh (typical non-PS/2 COM3), and
  5449.       PORT 03E8h-03EFh (typical non-PS/2 COM4)
  5450. Note:    chips overview:
  5451.      8250  original PC, specified up to 56Kbd, but mostly runs
  5452.            only 9600Bd, no scratchregister, bug: sometimes shots
  5453.            ints without reasons
  5454.      8250A, 16450, 16C451: ATs, most chips run up to 115KBd,
  5455.            no bug: shots no causeless ints
  5456.      8250B: PC,XT,AT, pseudo bug: shots one causeless int for
  5457.         compatibility with 8250, runs up to 56KBd
  5458.      16550, 16550N, 16550V: early PS/2, FIFO bugs
  5459.      16550A,16550AF,16550AFN,16550C,16C551,16C552: PS/2, FIFO ok
  5460.      82510: laptops & industry, multi emulation mode
  5461.         (default=16450), special-FIFO.
  5462.      8251: completely different synchronous SIO chip, not compatible!
  5463. SeeAlso: INT 14/AH=00h"SERIAL"
  5464.  
  5465. 03F8  -W  serial port, transmitter holding register (THR), which contains the
  5466.       character to be sent. Bit 0 is sent first.
  5467.         bit 7-0      data bits when DLAB=0 (Divisor Latch Access Bit)
  5468. 03F8  R-  receiver buffer register (RBR), which contains the received
  5469.       character. Bit 0 is received first
  5470.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  5471. 03F8  RW  divisor latch low byte (DLL) when DLAB=1 (see #P201)
  5472. 03F9  RW  divisor latch high byte (DLM) when DLAB=1 (see #P201)
  5473. 03F9  RW  interrupt enable register (IER) when DLAB=0 (see #P202)
  5474. 03FA  R-  interrupt identification register (see #P203)
  5475.     Information about a pending interrupt is stored here. When the ID
  5476.       register is addressed, thehighest priority interrupt is held, and
  5477.       no other interrupts are acknowledged until the CPU services that
  5478.       interrupt.
  5479. 03FA  -W  16650 FIFO Control Register (FCR) (see #P204)
  5480. 03FB  RW  line control register (LCR) (see #P205)
  5481. 03FC  RW  modem control register (see #P206)
  5482. 03FD  R-  line status register (LSR) (see #P207)
  5483. 03FE  R-  modem status register (MSR) (see #P208)
  5484. 03FF  RW  scratch register (SCR)
  5485.     (not used for serial I/O; available to any application using 16450,
  5486.       16550) (not present on original 8250)
  5487.  
  5488. (Table P201)
  5489. Values for serial port divisor latch registers:
  5490.  Some baudrates (using standard 1.8432 Mhz clock):
  5491.        baudrate       divisor     DLM  DLL
  5492.         50       2304          09h 00h
  5493.         75       1536          06h 00h
  5494.        110       1047          04h 17h
  5495.        134,5    857          03h 59h
  5496.        150        768          03h 00h
  5497.        300        384          01h 80h
  5498.        600        192          00h C0h
  5499.       1200         96          00h 60h
  5500.       1800         64          00h 40h
  5501.       2000         58          00h 3Ah
  5502.       2400         48          00h 30h
  5503.       3600         32          00h 20h
  5504.       4800         24          00h 18h
  5505.       7200         16          00h 10h
  5506.       9600         12          00h 0Ch
  5507.      19200          6          00h 06h
  5508.      38400          3          00h 03h
  5509.      57600          2          00h 02h
  5510.     115200          1          00h 01h
  5511. Note:    MIDI baudrate 32250Bd with 4Mhz quarz for c't MIDI interface
  5512.       following c't 01/1991:   '14400'      00h 08h
  5513.  
  5514. Bitfields for serial port interrupt enable register (IER):
  5515. Bit(s)    Description    (Table P202)
  5516.  7-4    reserved (0)
  5517.  3    modem-status interrupt enable
  5518.  2    receiver-line-status interrupt enable
  5519.  1    transmitter-holding-register empty interrupt enable
  5520.  0    received-data-available interrupt enable
  5521.       (also 16550(A) timeout interrupt)
  5522. Note:    16550(A) will interrupt with a timeout if data exists in the FIFO
  5523.       and isn't read within the time it takes to receive four bytes or if
  5524.       no data is received within the time it takes to receive four bytes
  5525. SeeAlso: #P203
  5526.  
  5527. Bitfields for serial port interrupt identification register (IIR):
  5528. Bit(s)    Description    (Table P203)
  5529.  7-6    =00  reserved on 8250, 8251, 16450
  5530.     =01  if FIFO queues enabled but unusable (16550 only)
  5531.     =11  if FIFO queues are enabled (16550A only) (see also #P204)
  5532.  6-5    (used by 82510 for FIFO status???)
  5533.  5-4    reserved (0)
  5534.  3    (8250,16450) reserved (0)
  5535.     (16550) timeout interrupt pending
  5536.  2-1    identify pending interrupt with the highest priority
  5537.     11    receiver line status interrupt. priority=highest
  5538.     10    received data available register interrupt. pr.=second
  5539.     01    transmitter holding register empty interrupt. pr.=third
  5540.     00    modem status interrupt. priority=fourth
  5541.  0    =0 interrupt pending. contents of register can be used as a pointer
  5542.       to the appropriate interrupt service routine
  5543.     =1 no interrupt pending
  5544. Notes:    interrupt pending flag uses reverse logic, 0=pending, 1=none
  5545.     interrupt will occur if any of the line status bits are set
  5546.     THRE bit is set when THRE register is emptied into the TSR
  5547. SeeAlso: #P202
  5548.  
  5549. Bitfields for serial port FIFO control register (FCR):
  5550. Bit(s)    Description    (Table P204)
  5551.  7-6    received data available interrupt trigger level (16550)
  5552.     00  1 byte
  5553.     01  4 bytes
  5554.     10  8 bytes
  5555.     11 14 bytes
  5556.  6-5    =00  (used to enable 4 byte Rx/Tx FIFOs on 82510???)
  5557.     =10 ???
  5558.  5-4    reserved (00)
  5559.  3    change RXRDY  TXRDY pins from mode 0 to mode 1
  5560.  2    clear XMIT FIFO
  5561.  1    clear RCVR FIFO
  5562.  0    enable clear XMIT and RCVR FIFO queues
  5563.  4-0    (other purpose on 82510???)
  5564. Notes:    bit 0 must be set in order to write to other FCR bits
  5565.     bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  5566.       the receiver shift register is not cleared
  5567.     bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  5568.       the transmit shift register is not cleared
  5569.     due to a hardware bug, 16550 FIFOs don't work correctly (this
  5570.       was fixed in the 16550A)
  5571. SeeAlso: #P203
  5572.  
  5573. Bitfields for serial port Line Control Register (LCR):
  5574. Bit(s)    Description    (Table P205)
  5575.  7    =1  divisor latch access bit (DLAB)
  5576.     =0  receiver buffer, transmitter holding, or interrupt enable register
  5577.       access
  5578.  6    set break enable. serial ouput is forced to spacing state and remains
  5579.       there.
  5580.  5-3    PM2 PM1 PM0
  5581.      x   x     0 = no parity
  5582.      0   0     1 = odd parity
  5583.      0   1     1 = even parity
  5584.      1   0     1 = high parity (sticky)
  5585.      1   1     1 = low parity (sticky)
  5586.      x   x     1 = software parity
  5587.  2    stop bit length (STB/SBL)
  5588.     0  one stop bit 
  5589.     1  2 stop bits with (word length 6, 7, 8)
  5590.        1.5 stop bits with word length 5
  5591.  1-0    (WLS1-0, CL1-0)
  5592.     00 word length is 5 bits
  5593.     01 word length is 6 bits
  5594.     10 word length is 7 bits
  5595.     11 word length is 8 bits
  5596. SeeAlso: #P206,#P207,#P208
  5597.  
  5598. Bitfields for serial port Modem Control Register (MCR):
  5599. Bit(s)    Description    (Table P206)
  5600.  7-5    reserved (0)
  5601.  4    loopback mode for diagnostic testing of serial port
  5602.     output of transmitter shift register is looped back to receiver
  5603.       shift register input. In this mode, transmitted data is received
  5604.       immediately so that the CPU can verify the transmit data/receive
  5605.       data serial port paths.
  5606.     If OUT2 is disabled, there is no official way to generate an IRQ
  5607.       during loopback mode.
  5608.  3    auxiliary user-designated output 2 (OUT2)
  5609.     because of external circuity OUT2 must be 1 to master-intr-enableing.
  5610.     BUG: Some Toshiba Laptops utilize this bit vice versa, newer Toshiba
  5611.       machines allow assignment of the bit's polarity in system setup.
  5612.     82050: This bit is only effective, if the chip is being used with an
  5613.       externally-generated clock.
  5614.  2    =1/0  auxiliary user-designated output 1 (OUT1)
  5615.     should generally be cleared!!
  5616.     Some external hardware, e.g. c't MIDI interface (and compatibles) use
  5617.       this bit to change the 8250 input clock from 1,8432 MHz to 4Mhz
  5618.       (enabling MIDI-conformant baudrates) and switching to
  5619.       MIDI-compatible current loop connectors.
  5620.  1    force request-to-send active (RTS)
  5621.  0    force data-terminal-ready active (DTR)
  5622. SeeAlso: #P205,#P207,#P208
  5623.  
  5624. Bitfields for serial port Line Status Register (LSR):
  5625. Bit(s)    Description    (Table P207)
  5626.  7    =0  reserved
  5627.     =1  on some chips produced by UMC
  5628.  6    transmitter shift and holding registers empty
  5629.  5    transmitter holding register empty (THRE)
  5630.     Controller is ready to accept a new character to send.
  5631.  4    break interrupt. the received data input is held in the zero bit
  5632.       state longer than the time of start bit + data bits + parity bit +
  5633.       stop bits.
  5634.  3    framing error (FE). the stop bit that follows the last parity or data
  5635.       bit is a zero bit
  5636.  2    parity error (PE). Character has wrong parity
  5637.  1    overrun error (OE). a character was sent to the receiver buffer
  5638.       before the previous character in the buffer could be read. This
  5639.       destroys the previous character.
  5640.  0    data ready. a complete incoming character has been received and sent
  5641.       to the receiver buffer register.
  5642. SeeAlso: #P205,#P206,#P208
  5643.  
  5644. Bitfields for serial port Modem Status Register (MSR):
  5645. Bit(s)    Description    (Table P208)
  5646.  7    data carrier detect (-DCD)
  5647.  6    ring indicator (-RI)
  5648.  5    data set ready (-DSR)
  5649.  4    clear to send (-CTS)
  5650.  3    delta data carrier detect (DDCD)
  5651.  2    trailing edge ring indicator (TERI)
  5652.  1    delta data set ready (DDSR)
  5653.  0    delta clear to send (DCTS)
  5654. Notes:    bits 0-3 are reset when the CPU reads the MSR
  5655.     bit 4 is the Modem Control Register RTS during loopback test
  5656.     bit 5 is the Modem Control Register DTR during loopback test
  5657.     bit 6 is the Modem Control Register OUT1 during loopback test
  5658.     bit 7 is the Modem Control Register OUT2 during loopback test
  5659. SeeAlso: #P205,#P206,#P207
  5660. --------!---Note-----------------------------
  5661. Note:    Adresses above 03FF generally apply to EISA and PCI machines only !
  5662.     EISA port assignments:
  5663.         1000-1FFF    slot 1 EISA
  5664.         2000-2FFF    slot 2 EISA
  5665.         3000-3FFF    slot 3 EISA
  5666.         4000-4FFF    slot 4 EISA
  5667.         5000-5FFF    slot 5 EISA
  5668.         6000-6FFF    slot 6 EISA
  5669.         7000-7FFF    slot 7 EISA
  5670. ----------P0401040B--------------------------
  5671. PORT 0401-040B - EISA DMA Controller
  5672. SeeAlso: PORT 0481h-048Bh"EISA",PORT 04D4h-04D6h"EISA"
  5673.  
  5674. 0401  RW  DMA channel 0 word count byte 2 (high)
  5675. 0403  RW  DMA channel 1 word count byte 2 (high)
  5676. 0405  RW  DMA channel 2 word count byte 2 (high)
  5677. 0407  RW  DMA channel 3 word count byte 2 (high)
  5678. 040A  -W  extended DMA chaining mode register, channels 0-3 (see #P209)
  5679. 040A  R-  channel interrupt (IRQ13) status register (see #P210)
  5680. 040B  -W  DMA extended mode register for channels 0-3 (see #P211)
  5681.     (bit settings same as 04D6)
  5682.  
  5683. Bitfields for EISA extended DMA chaining mode register (channels 0-3):
  5684. Bit(s)    Description    (Table P209)
  5685.  7-5    reserved
  5686.  4    =0  generates IRQ13
  5687.     =1  generates terminal count
  5688.  3    =0  do not start chaining
  5689.     =1  programming complete
  5690.  2    =0  disable buffer chaining mode (default)
  5691.     =1  enable buffer chaining mode
  5692.  1-0    DMA channel select
  5693. SeeAlso: #P210,#P211,#P215
  5694.  
  5695. Bitfields for EISA channel interrupt (IRQ13) status register:
  5696. Bit(s)    Description    (Table P210)
  5697.  7-5  interrupt on channels 7-5
  5698.  4      reserved
  5699.  3-0  interrupt on channels 3-0
  5700. SeeAlso: #P209
  5701.  
  5702. Bitfields for EISA DMA extended mode register (channels 0-3):
  5703. Bit(s)    Description    (Table P211)
  5704.  7    =0 enable stop register
  5705.  6    =0 terminal count is an output for this channel    (default)
  5706.  5-4    DMA cycle timing
  5707.     00 ISA-compatible (default)
  5708.     01 type A timing mode
  5709.     10 type B timing mode
  5710.     11 burst DMA mode
  5711.  3-2    Address mode
  5712.     00 8-bit I/O, count by bytes (default)
  5713.     01 16-bit I/O, count by words, address shifted
  5714.     10 32-bit I/O, count by bytes
  5715.     11 16-bit I/O, count by bytes
  5716.  1-0    DMA channel select
  5717. SeeAlso: #P209,#P216
  5718. ----------P04610462--------------------------
  5719. PORT 0461-0462 - EISA NMI CONTROL
  5720.  
  5721. 0461  RW  Extended NMI status/control register (see #P212)
  5722. 0462  -W  Software NMI register. writing to this register causes an NMI    if
  5723.       NMIs are enabled
  5724.     bit 7 = 1  generates an NMI
  5725.  
  5726. Bitfields for EISA extended NMI status control register:
  5727. Bit(s)    Description    (Table P212)
  5728.  7    NMI pending from fail-safe timer (read only)
  5729.  6    NMI pending from bus timeout NMI status (read only)
  5730.  5    NMI pending (read only)
  5731.  4    reserved
  5732.  3    bus timeout NMI enable (read/write)
  5733.  2    fail-safe NMI enable (read/write)
  5734.  1    NMI I/O port enable (read/write)
  5735.  0    RSTDRV. bus reset (read/write)
  5736.     =0  NORMAL bus reset operation
  5737.     =1  reset bus asserted
  5738. --------X-P04640465--------------------------
  5739. PORT 0464-0465 - EISA BUS MASTER STATUS
  5740.  
  5741. 0464w R      bus master status latch register (slots 1-16)
  5742.     identifies the last bus master that had control of the bus (bit N =
  5743.       slot N+1 had control last)
  5744. ----------P0481048B--------------------------
  5745. PORT 0481-048B - EISA DMA page registers
  5746. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04C6h-04CFh"EISA"
  5747.  
  5748. 0481  RW  DMA channel 2 address byte 3 (high)
  5749. 0482  RW  DMA channel 3 address byte 3 (high)
  5750. 0483  RW  DMA channel 1 address byte 3 (high)
  5751. 0487  RW  DMA channel 0 address byte 3 (high)
  5752. 0489  RW  DMA channel 6 address byte 3 (high)
  5753. 048A  RW  DMA channel 7 address byte 3 (high)
  5754. 048B  RW  DMA channel 5 address byte 3 (high)
  5755. ----------P04C604CF--------------------------
  5756. PORT 04C6-04CF - EISA DMA count registers
  5757. SeeAlso: PORT 0401h-040Bh"EISA",PORT 0481h-048Bh"EISA",PORT 04E0h-04FFh"EISA"
  5758.  
  5759. 04C6  RW  DMA channel 5 word count byte 2 (high)
  5760. 04CA  RW  DMA channel 6 word count byte 2 (high)
  5761. 04CE  RW  DMA channel 7 word count byte 2 (high)
  5762. --------X-P04D004D1--------------------------
  5763. PORT 04D0-04D1 - EISA IRQ control
  5764. SeeAlso: PORT 04D4h-040Bh"EISA"
  5765.  
  5766. 04D0  -W  IRQ 0-7 interrupt edge/level registers (see #P213)
  5767. 04D1  -W  IRQ 8-15 interrupt edge/level registers (see #P214)
  5768.  
  5769. Bitfields for EISA IRQ 0-7 interrupt edge/level register:
  5770. Bit(s)    Description    (Table P213)
  5771.  7    IRQ 7 is level sensitive
  5772.  6    IRQ 6 is level sensitive
  5773.  5    IRQ 5 is level sensitive
  5774.  4    IRQ 4 is level sensitive
  5775.  3    IRQ 3 is level sensitive
  5776.  2-0    reserved
  5777. SeeAlso: #P214
  5778.  
  5779. Bitfields for EISA IRQ 8-15 interrupt edge/level register:
  5780. Bit(s)    Description    (Table P214)
  5781.  7    IRQ 15 is level sensitive
  5782.  6    IRQ 14 is level sensitive
  5783.  5    reserved (1)
  5784.  4    IRQ 12 is level sensitive
  5785.  3    IRQ 11 is level sensitive
  5786.  2    IRQ 10 is level sensitive
  5787.  1    IRQ 9  is level sensitive
  5788.  0    reserved
  5789. SeeAlso: #P213
  5790. ----------P04D404D6--------------------------
  5791. PORT 04D4-04D6 - EISA DMA control
  5792. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04D0h-04D1h"EISA"
  5793.  
  5794. 04D4  R-  DMA chaining status
  5795. 04D4  -W  extended DMA chaining mode register, channels 4-7 (see #P215)
  5796. 04D6  -W  DMA extended mode register for channels 4-7 (see #P216)
  5797.     bit settings same as PORT 040Bh
  5798.  
  5799. Bitfields for EISA extended DMA chaining mode register (channels 4-7):
  5800. Bit(s)    Description    (Table P215)
  5801.  7-5    reserved (0)
  5802.  4    =0  generates IRQ 13
  5803.     =1  generates terminal count
  5804.  3    =0  do not start chaining
  5805.     =1  programming complete
  5806.  2    =0  disable buffer chaining mode (default)
  5807.     =1  enable buffer chaining mode
  5808.  1-0    DMA channel select
  5809. SeeAlso: #P209,#P216
  5810.  
  5811. Bitfields for EISA DMA extended mode register (channels 4-7):
  5812. Bit(s)    Description    (Table P216)
  5813.  7    =0  enable stop register
  5814.  6    =0  terminal count is an output for this channel (default)
  5815.  5-4    DMA cycle timing
  5816.     00 ISA-compatible (default)
  5817.     01 type A timing mode
  5818.     10 type B timing mode
  5819.     11 burst DMA mode
  5820.  3-2    Address mode
  5821.     00 8-bit I/O, count by bytes (default)
  5822.     01 16-bit I/O, count by words, address shifted
  5823.     10 32-bit I/O, count by bytes
  5824.     11 16-bit I/O, count by bytes
  5825.  1-0    DMA channel select
  5826. SeeAlso: #P211,#P215
  5827. ----------P04E004FF--------------------------
  5828. PORT 04E0-04FF - EISA DMA stop registers
  5829. SeeAlso: PORT 0481h-048Bh"EISA"
  5830.  
  5831. 04E0-04E2  RW    channel 0
  5832. 04E4-04E6  RW    channel 1
  5833. 04E8-04EA  RW    channel 2
  5834. 04EC-04EE  RW    channel 3
  5835. 04F4-04F6  RW    channel 5
  5836. 04F8-04FA  RW    channel 6
  5837. 04FC-04FE  RW    channel 7
  5838. ----------P05300533--------------------------
  5839. PORT 0530-0533 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  5840. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  5841.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  5842.  
  5843. 0530  RW  address select
  5844. 0531  RW  data
  5845. 0532  RW  status
  5846. 0533  RW  PIO
  5847. ----------P05300537--------------------------
  5848. PORT 0530-0537 - Windows Sound System (default address)
  5849. Range:    dipswitch selectable among PORT 0530h-0537h,PORT 0604h-060Bh,
  5850.       PORT 0E80h-0E87h, and PORT 0F40h-0F47h
  5851. Note:    the Sound Galaxy NX16 sound cards support the CODEC portion of the
  5852.       WSS on ports 0534h-0537h (or 0608h-060Bh, etc.)
  5853.  
  5854. 0534  ?W  register select (index) (see #P217)
  5855. 0535  RW  data register (selected by PORT 0534h)
  5856.  
  5857. (Table P217)
  5858. Values for Windows Sound System register number:
  5859.  00h    ???
  5860.  01h    ???
  5861.  02h    Mixer: Line In volume (right) (see #P218)
  5862.  03h    Mixer: Line In volume (left) (see #P218)
  5863.  04h    Mixer: FM volume (right) (see #P218)
  5864.  05h    Mixer: FM volume (left) (see #P218)
  5865.  06h    ???
  5866.  07h    ???
  5867.  08h    ???
  5868.  0Ch    bit 6: ???
  5869.  0Dh    microphone input enabled by bit 0 ???
  5870.  12h    Mixer: CD volume (right) (see #P218)
  5871.  13h    Mixer: CD volume (left) (see #P218)
  5872.  1Ah    Mixer: SB volume (see #P219)
  5873.  48h    ???
  5874. Notes:    to enable the microphone input, ALL of the following registers must
  5875.       be set: 00h set to 80h, 01h set to 80h, 07h to 00h, 0Dh to 01h,
  5876.       and 48h to 4Bh
  5877.     on the Sound Galaxy NX16, only bits 0-4 of the register number are
  5878.       fully decoded, so most registers above 1Fh are aliases of the
  5879.       first 32 registers
  5880.  
  5881. Bitfields for WSS mixer volume:
  5882. Bit(s)    Description    (Table P218)
  5883.  7    disable input source
  5884.  6-5    reserved???
  5885.  4-0    volume (00h = highest, 1Fh = lowest)
  5886. SeeAlso: #P217,#P219
  5887. Note:    the GW2000 GWBVOL.EXE only permits the setting of volume levels
  5888.       08h (reported as 16) to 18h (reported as 0, and sets bit 7 as well)
  5889.  
  5890. Bitfields for WSS mixer volume (SoundBlaster):
  5891. Bit(s)    Description    (Table P219)
  5892.  7    disable input source
  5893.  6-4    reserved???
  5894.  3-0    volume (00h = highest, 0Fh = lowest)
  5895. SeeAlso: #P217,#P218
  5896. ----------P0601------------------------------
  5897. PORT 0601 - Headland HL21, Acer M5105 chipsets - SYSTEM CONTROL
  5898.  
  5899. 0601  -W  system control (see #P220)
  5900. 0601  R-  status (see #P221)
  5901.  
  5902. Bitfields for Headland HL21/Acer M5105 system control register:
  5903. Bit(s)    Description    (Table P220)
  5904.  7    =1  power LED on
  5905.  6    =1  LCD backlight off
  5906.  5    ???
  5907.  4    ???
  5908.  3    ???
  5909.  2    =1  video chips disabled, screen blanked.
  5910.  1    ???
  5911.  0    =1  will lock up your machine!
  5912. SeeAlso: #P221
  5913.  
  5914. Bitfields for Headland HL21/Acer M5105 status register:
  5915. Bit(s)    Description    (Table P221)
  5916.  7    =0  if screen enabled always these values
  5917.  6    =0
  5918.  5    =0
  5919.  4    =0
  5920.  3    =0
  5921.  2    =1  (=0 at low power)
  5922.  1    =0  power OK
  5923.  0    =0
  5924. SeeAlso: #P220
  5925. ----------P06040607--------------------------
  5926. PORT 0604-0607 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  5927. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  5928.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  5929. ----------P0604060B--------------------------
  5930. PORT 0604-060B - Windows Sound System
  5931. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  5932. SeeAlso: PORT 0530h"Sound System"
  5933. ----------P06200627--------------------------
  5934. PORT 0620-0627 - PC network (adapter 1)
  5935. 0628-062F - PC network (adapter 2)
  5936. ----------P06800681--------------------------
  5937. PORT 0680-0681 - Microchannel POST Diagnostic (write only)
  5938.  
  5939. 0680  -W  Microchannel POST Diagnostic (write only)
  5940. 0681  -W  secondary MCA POST diagnostic
  5941. ----------P06A006A8--------------------------
  5942. PORT 06A0-06A8 - non-standard COM port addresses
  5943. Range:    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  5944. Note:    V20-XT by German magazine c't
  5945. ----------P06A806AF--------------------------
  5946. PORT 06A8-06AF - non-standard COM port addresses
  5947. Range:    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  5948. Note:    V20-XT by German magazine c't
  5949. ----------P06E206E3--------------------------
  5950. PORT 06E2-06E3 - data aquisition (adapter 1)
  5951. ----------P06E8------------------------------
  5952. PORT 06E8 - S3 86C928 video controller (ELSA Winner 1000)
  5953. ----------P06E806EF--------------------------
  5954. PORT 06E8-06EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5955. SeeAlso: PORT 02E8h-02EFh,PORT 0AE8h,PORT 96E8h,PORT 9AE8h
  5956.  
  5957. 06E8w -W  CRT control: horizontal displayed
  5958. ----------P0746------------------------------
  5959. PORT 0746 - Gravis Ultra Sound by Advanced Gravis
  5960. SeeAlso: PORT 0240h-024Fh,PORT 0340h-034Fh
  5961.  
  5962. 0746  R-  board version (rev 3.7+)
  5963.         FFh      Pre 3.6 boards, ICS mixer NOT present
  5964.         05h      Rev 3.7 with ICS Mixer. Some R/L: flip problems.
  5965.         06h-09h      Revision 3.7 and above. ICS Mixer present
  5966.         0Ah-      UltraMax. CS4231 present, no ICS mixer
  5967. 0746  -W  Mixer Control Port
  5968. ----------P07900793--------------------------
  5969. PORT 0790-0793 - cluster (adapter 1)
  5970. ----------P080008FF--------------------------
  5971. PORT 0800-08FF - I/O port access registers for extended CMOS RAM or SRAM
  5972.         (256 bytes at a time)
  5973. Note:    sometimes plain text can be seen here
  5974. --------X-P080008FF--------------------------
  5975. PORT 0800-08FF - reserved for EISA system motherboard
  5976. ----------P0A200A23--------------------------
  5977. PORT 0A20-0A23 - Token Ring (adapter 1)
  5978. 0A24-0A27 - Token Ring (adapter 2)
  5979. ----------P0A79------------------------------
  5980. PORT 0A79 - Plug-and-Play - WRITE DATA PORT
  5981. Desc:    all data written to the Plug-and-Play configuration registers is
  5982.       written to this port, including the configuration byte which
  5983.       indicates the I/O port from which data is to be read when reading
  5984.       the configuration registers
  5985. SeeAlso: PORT 0279h
  5986.  
  5987. 0A79  -W  Plug-and-Play data writes
  5988. ----------P0AE20AE3--------------------------
  5989. PORT 0AE2-0AE3 - cluster (adapter 2)
  5990. ----------P0AE8------------------------------
  5991. PORT 0AE8 - S3 86C928 video controller (ELSA Winner 1000)
  5992. ----------P0AE80AEF--------------------------
  5993. PORT 0AE8-0AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  5994.  
  5995. 0AE8w -W  CRT control: horizontal sync start
  5996. ----------P0B900B93--------------------------
  5997. PORT 0B90-0B93 - cluster (adapter 2)
  5998. ----------P0C00------------------------------
  5999. PORT 0C00 - EISA??? - PAGE REGISTER
  6000.  
  6001. 0C00  RW  page register to write to SRAM or I/O
  6002. --------X-P0C000CFF--------------------------
  6003. PORT 0C00-0CFF - reserved for EISA system motherboard
  6004. ----------P0C7C------------------------------
  6005. PORT 0C7C        bit 7-4 (Compaq)
  6006. --------X-P0C800C83--------------------------
  6007. PORT 0C80-0C83 - EISA system board ID registers
  6008.  
  6009. 0C80  R?  bit 7: unused (0)
  6010.       bits 6-2: manufacturer ID, first compressed ASCII char
  6011.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  6012. 0C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  6013.       bits 4-0: manufacturer ID, third compressed ASCII char
  6014. 0C82  R?  reserved for manufacturer's use
  6015. 0C83  R?  bits 7-3: reserved for manufacturer's use
  6016.       bits 2-0: EISA bus version
  6017. --------X-P0CF80CFF--------------------------
  6018. PORT 0CF8-0CFF - PCI Configuration Mechanism 1 - Configuration Registers
  6019. SeeAlso: PORT 0CF8h"Mechanism 2"
  6020.  
  6021. 0CF8d -W  configuration address port (see #P222)
  6022. 0CFCd RW  configuration data port (when PORT 0CF8h bit 31 is set)
  6023.  
  6024. Bitfields for PCI configuration address port:
  6025. Bit(s)    Description    (Table P222)
  6026.  1-0    reserved (00)
  6027.  7-2    configuration register number (see #0628)
  6028.  10-8    function
  6029.  15-11    device number
  6030.  23-16    bus number
  6031.  30-24    reserved (0)
  6032.  31    enable configuration space mapping
  6033. Note:    configuration registers are considered DWORDs, so the number in bits
  6034.       7-2 is the configuration space address shifted right two bits
  6035. SeeAlso: #P223
  6036. --------X-P0CF80CFA--------------------------
  6037. PORT 0CF8-0CFA - PCI Configuration Mechanism 2 - Configuration Registers
  6038. Notes:    this configuration mechanism is deprecated as of PCI version 2.1;
  6039.       only mechanism 1 should be used for new systems
  6040.     to access the configuration space, write the target bus number to
  6041.       the Forward Register, then write to the Configuration Space
  6042.       Enable register, and finally read or write the appropriate I/O
  6043.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  6044.       'rr' in physical device 'x's configuration data)
  6045.     the Intel "Saturn" and "Neptune" chipsets use configuration mechanism 2
  6046. SeeAlso: PORT 0CF8h"Mechanism 1",PORT C000h"PCI Configuration"
  6047.  
  6048. 0CF8  RW  Configuration Space Enable (CSE) (see #P223)
  6049. 0CFA  RW  Forward Register (selects target bus number)
  6050.  
  6051. Bitfields for PCI Configuration Space Enable:
  6052. Bit(s)    Description    (Table P223)
  6053.  0    Special Cycle Enable (SCE)
  6054.  3-1    target function number (PCI logical device within physical device)
  6055.  7-4    key (non-zero to allow configuration)
  6056. SeeAlso: #P222
  6057. ----------P0CF9------------------------------
  6058. PORT 0CF9 - Intel 82420EX chipset - TURBO/RESET CONTROL REGISTER
  6059. Notes:    this port can only be accessed via 8-bit IN or OUT instructions by
  6060.       the CPU
  6061.     also supported by the Intel "Saturn" and "Neptune" chipsets
  6062. SeeAlso: PORT C051h
  6063.  
  6064. 0CF9  RW  reboot system, optionally selecting de-turbo mode (see #P224)
  6065.  
  6066. (Table P224)
  6067. Call Intel 82420EX turbo/reset control register with:
  6068.  7-3    reserved (0)
  6069.  2    reset CPU
  6070.  1    reset mode
  6071.     0 soft reset
  6072.     1 hard reset
  6073.  0    deturbo mode
  6074. Note:    when resetting the CPU, two writes are required: the first sets the
  6075.       state of bit 1 while keeping bit 2 cleared, and the second sets
  6076.       bit 2; the reset occurs on bit 2's transition from 0 to 1.
  6077. --------s-P0E800E83--------------------------
  6078. PORT 0E80-0E83 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  6079. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  6080.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  6081. --------s-P0E800E87--------------------------
  6082. PORT 0E80-0E87 - Windows Sound System
  6083. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  6084. SeeAlso: PORT 0530h"Sound System"
  6085. --------V-P0EE8------------------------------
  6086. PORT 0EE8 - S3 86C928 video controller (ELSA Winner 1000)
  6087. --------V-P0EE80EEF--------------------------
  6088. PORT 0EE8-0EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6089.  
  6090. 0EE8w -W  CRT control: horizontal sync width
  6091. ----------P0F400F43--------------------------
  6092. PORT 0F40-0F43 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  6093. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  6094.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  6095. ----------P0F400F47--------------------------
  6096. PORT 0F40-0F47 - Windows Sound System
  6097. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  6098. SeeAlso: PORT 0530h"Sound System"
  6099. --------X-P100010FF--------------------------
  6100. PORT 1000-10FF - available for EISA slot 1
  6101. ----------P12E812EF--------------------------
  6102. PORT 12E8-12EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6103.  
  6104. 12E8w -W  CRT control: vertical total
  6105. ----------P13901393--------------------------
  6106. PORT 1390-1393 - cluster (adapter 3)
  6107. --------X-P140014FF--------------------------
  6108. PORT 1400-14FF - available for EISA slot 1
  6109. ----------P16E816EF--------------------------
  6110. PORT 16E8-16EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6111.  
  6112. 16E8w -W  CRT control: vertical displayed
  6113. --------X-P180018FF--------------------------
  6114. PORT 1800-18FF - available for EISA slot 1
  6115. ----------P1AE81AEF--------------------------
  6116. PORT 1AE8-1AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6117.  
  6118. 1AE8w -W  CRT control: vertical sync start
  6119. --------X-P1C001CFF--------------------------
  6120. PORT 1C00-1CFF - available for EISA slot 1
  6121. ----------P1C65------------------------------
  6122. PORT 1C65 - Compaq Contura Aero
  6123. SeeAlso: PORT 2065h
  6124.  
  6125. 1C65  R?  bit 6: operating on battery power
  6126. --------X-P1C801C8F--------------------------
  6127. PORT 1C80-1C8F - VESA XGA Video in EISA slot 1
  6128.  
  6129. 1C80-1C83  RW    EISA Video ID
  6130. 1C84  RW    EISA Video expansion board control (see #P225)
  6131. 1C85  RW    EISA Setup control
  6132. 1C88  RW    EISA Video Programmable Option Select 0
  6133. 1C89-1C8F  RW    EISA Video Programmable Option Select 1-7
  6134. --------X-P1C801C83--------------------------
  6135. PORT 1C80-1C83 - EISA board product ID (board in slot 1)
  6136.  
  6137. 1C80  R?  bit 7: unused (0)
  6138.       bits 6-2: manufacturer ID, first compressed ASCII char
  6139.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  6140. 1C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  6141.       bits 4-0: manufacturer ID, third compressed ASCII char
  6142. 1C82  R?  bits 7-4: first hex digit of product type
  6143.       bits 3-0: second hex digit of product type
  6144. 1C83  R?  bits 7-4: third hex digit of product type
  6145.       bits 3-0: product revision number (hex digit)
  6146. --------X-P1C84------------------------------
  6147. PORT 1C84 - EISA CONFIGURATION FLAGS (board in slot 1)
  6148.  
  6149. 1C84  RW  configuration flags (see #P225)
  6150.  
  6151. Bitfields for EISA Add-in Card configuration flags:
  6152. Bit(s)    Description    (Table P225)
  6153.  0    enable
  6154.  1    IOCHKERR (read-only) card is generating CHCHK#, causing an NMI
  6155.  2    IOCHKRST reset card
  6156.  7-3    card-specific
  6157. --------V-P1C85------------------------------
  6158. PORT 1C85 - Compaq Qvision EISA - Virtual Controller ID
  6159. --------V-P1EE81EEF--------------------------
  6160. PORT 1EE8-1EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6161.  
  6162. 1EE8w -W  CRT control: vertical sync width
  6163. --------X-P200020FF--------------------------
  6164. PORT 2000-20FF - available for EISA slot 2
  6165. ----------P2065------------------------------
  6166. PORT 2065 - Compaq Contura Aero
  6167. SeeAlso: PORT 1C65h"Compaq",PORT 2465h"Compaq"
  6168.  
  6169. 2065  -W  ??? (84h seen)
  6170. --------V-P2100------------------------------
  6171. PORT 2100 - XGA Video Operating Mode Register
  6172. Note:    this port is for the first XGA in the system; 2110-2170 are used for
  6173.       the second through eighth XGAs
  6174. --------V-P2101------------------------------
  6175. PORT 2101 - XGA Video Aperture Control
  6176. Note:    this port is for the first XGA in the system; 2111-2171 are used for
  6177.       the second through eighth XGAs
  6178. --------V-P21022103--------------------------
  6179. PORT 2102-2103 - XGA ???
  6180. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6181.       the second through eighth XGAs
  6182. --------V-P2104------------------------------
  6183. PORT 2104 - XGA Video Interrupt Enable
  6184. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6185.       the second through eighth XGAs
  6186. --------V-P2105------------------------------
  6187. PORT 2105 - XGA Video Interrupt Status
  6188. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6189.       the second through eighth XGAs
  6190. --------V-P2106------------------------------
  6191. PORT 2106 - XGA Video Virtual Memory Control
  6192. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6193.       the second through eighth XGAs
  6194. --------V-P2107------------------------------
  6195. PORT 2107 - XGA Video Virtual Memory Interrupt Status
  6196. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6197.       the second through eighth XGAs
  6198. --------V-P2108------------------------------
  6199. PORT 2108 - XGA Video Aperture Index
  6200. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6201.       the second through eighth XGAs
  6202. --------V-P2109------------------------------
  6203. PORT 2109 - XGA Video Memory Access Mode
  6204. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6205.       the second through eighth XGAs
  6206. --------V-P210A------------------------------
  6207. PORT 210A - XGA Video Index for Data
  6208. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6209.       the second through eighth XGAs
  6210. --------V-P210B------------------------------
  6211. PORT 210B - XGA Video Data (byte)
  6212. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6213.       the second through eighth XGAs
  6214. --------V-P210C210F--------------------------
  6215. PORT 210C-210F - XGA Video Data (word/dword)
  6216. Note:    this port is for the first XGA in the system; 211x-217x are used for
  6217.       the second through eighth XGAs
  6218.  
  6219. 210C  RW  byte data
  6220. 210Cw RW  word data
  6221. 210Cd RW  dword data
  6222. --------V-P2110211F--------------------------
  6223. PORT 2110-211F - IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
  6224. Notes:    see individual 210x entries above
  6225.     c't says default instance number is 6, i.e. addresses 216x
  6226. --------V-P2120212F--------------------------
  6227. PORT 2120-212F - IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
  6228. Notes:    see individual 210x entries above
  6229.     c't says default instance number is 6, i.e. addresses 216x
  6230. --------V-P2130213F--------------------------
  6231. PORT 2130-213F - IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
  6232. Notes:    see individual 210x entries above
  6233.     c't says default instance number is 6, i.e. addresses 216x
  6234. --------V-P2140214F--------------------------
  6235. PORT 2140-214F - IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
  6236. Notes:    see individual 210x entries above
  6237.     c't says default instance number is 6, i.e. addresses 216x
  6238. --------V-P2150215F--------------------------
  6239. PORT 2150-215F - IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
  6240. Notes:    see individual 210x entries above
  6241.     c't says default instance number is 6, i.e. addresses 216x
  6242. --------V-P2160216F--------------------------
  6243. PORT 2160-216F - IBM XGA (eXtended Graphics Adapter 8514/A) (seventh installed)
  6244. Notes:    see individual 210x entries above
  6245.     c't says default instance number is 6, i.e. addresses 216x
  6246. --------V-P2170217F--------------------------
  6247. PORT 2170-217F - IBM XGA (eXtended Graphics Adapter 8514/A) (eighth installed)
  6248. Notes:    see individual 210x entries above
  6249.     c't says default instance number is 6, i.e. addresses 216x
  6250. --------V-P217A217B--------------------------
  6251. PORT 217A-217B - ET4000/W32 CRTC-B/Sprite
  6252. Note:    Alternative addresses may depend on adapter manufacturer,
  6253.       Tseng claims 21xA with x=three address bits, selected by IOD2..0
  6254.       during power up reset.
  6255.  
  6256. 21xA  RW  ET4000/W32(i) CRTC-B/Sprite index register
  6257.     bit7-0: index
  6258. 21xB  RW  ET4000/W32(i) CRTC-B/Sprite data register (see #P226)
  6259.  
  6260. (Table P226)
  6261. Values for ET4000/W32(i) CRTC-B/Sprite data register index:
  6262.  E0h    CRTC-B / Sprite Horizontal Pixel Position, Low
  6263.        bit7-0: horizontal pixel position bit7-0
  6264.  E1h    CRTC-B / Sprite Horizontal Pixel Position, High
  6265.        bit7-4: reserved
  6266.        bit3-0: horizontal pixel position bit11-8
  6267.  E2h    CRTC-B Width Low / Sprite Horizontal Preset
  6268.        bit7-0: width of CRTC-B bit7-0
  6269.        bit5-0: horizontal preset for sprite
  6270.  E3h    CRTC-B Width High / Sprite Horizontal Preset
  6271.        bit7-4: reserved
  6272.        bit3-0: width of CRTC-B bit11-8
  6273.  E4h    CRTC-B / Sprite Vertical Pixel Position, Low
  6274.        bit7-0: vertical pixel position bit7-0
  6275.  E5h    CRTC-B / Sprite Vertical Pixel Position, High
  6276.        bit7-4: reserved
  6277.        bit3-0: vertical pixel position bit11-8
  6278.  E6h    CRTC-B Height Low / Sprite Vertical Preset
  6279.        bit7-0: height of CRTC-B bit7-0
  6280.        bit5-0: vertical preset for sprite
  6281.  E7h    CRTC-B Height High / Sprite Vertical Preset
  6282.        bit7-4: reserved
  6283.        bit3-0: height of CRTC-B bit11-8
  6284.  E8h    CRTC-B / Sprite Starting Address Low
  6285.        pointer to CRTC-B / sprite image in display memory.
  6286.        (maximum size of sprites 64x64x4=1KB with 4 colors:
  6287.         00b=color-0, 01b=color-255, 10b=transparent, 11b=reserved)
  6288.        bit7-0: startaddress bit7-0
  6289.  E9h    CRTC-B / Sprite Starting Address Middle
  6290.        bit7-0: startaddress bit15-8
  6291.  EAh    CRTC-B / Sprite Starting Address High
  6292.        bit7-4: reserved
  6293.        bit3-0: startaddress bit19-16
  6294.  EBh    CRTC-B / Sprite Row Offset Low
  6295.        bit7-0: offset bit7-0
  6296.  ECh    CRTC-B / Sprite Row Offset High
  6297.        bit7-4: revision ID (any ET4000/W32)
  6298.             0000b=W32         0100b-1111b reserved
  6299.             0001b=W32i
  6300.             0010b=W32p
  6301.             0011b=W32i, new
  6302.        bit3-0: offset bit11-8
  6303.  EDh    CRTC-B Pixel Panning
  6304.        bit7-3: reserved
  6305.        bit2-0: CRTC-B pixel panning
  6306.  EEh    CRTC-B Color-Depth-Register / Hardware-Zoom
  6307.        bit7-4: reserved (concerning databook ET4000/W32)
  6308.        bit7-6: vertical zoom (undocumented)
  6309.            (original ET4000/W32 ok, doesn't work properly
  6310.             with some ET4000/W32i)
  6311.             00b=zoomx1       10b=zoomx3
  6312.             01b=zoomx2       11b=zoomx4
  6313.        bit5-4: horizontal zoom (undocumented)
  6314.            (original ET4000/W32 ok, doesn't work properly
  6315.             with some ET4000/W32i)
  6316.             00b=zoomx1       10b=zoomx3
  6317.             01b=zoomx2       11b=zoomx4
  6318.        bit3-0: bit/pixel
  6319.             0000b=1       0011b=8
  6320.             0001b=2       0100b=16
  6321.             0010b=4
  6322.  EFh    CRTC-B / Sprite Control
  6323.        bit7-2: reserved
  6324.        bit1     : 1=2nd CRTC-B image overlays main CRTC-A image
  6325.            0=CRTC-B image at pin SP1/0
  6326.        bit0     : 1=enable CRTC-B
  6327.            0=enable sprite (see F7h)
  6328.  F7h    Image Port Control
  6329.        bit7     : 1=CRTC-B or sprite active
  6330.            0=CRTC-B and sprite not active
  6331.        bit6-0: reserved
  6332. ----------P22E822EF--------------------------
  6333. PORT 22E8-22EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6334.  
  6335. 22E8w -W  CRT control: display control
  6336. ----------P23902393--------------------------
  6337. PORT 2390-2393 - cluster (adapter 4)
  6338. --------V-P23C023CF--------------------------
  6339. PORT 23C0-23CF - Compaq QVision - BitBLT engine
  6340. --------X-P240024FF--------------------------
  6341. PORT 2400-24FF - available for EISA slot 2
  6342. ----------P2465------------------------------
  6343. PORT 2465 - Compaq Contura Aero
  6344. SeeAlso: PORT 1C65h"Compaq",PORT 2065h"Compaq"
  6345.  
  6346. 2465  R-  current battery power level
  6347.         (166 fully-charged, 130 = LowBat1)
  6348. ----------P27C6------------------------------
  6349. PORT 27C6 - Compaq LTE Lite - LCD TIMEOUT
  6350.  
  6351. 27C6  RW  LCD timeout in minutes
  6352. --------X-P280028FF--------------------------
  6353. PORT 2800-28FF - available for EISA slot 2
  6354. --------V-P28E9------------------------------
  6355. PORT 28E9 - 8514/A - WD Escape Functions
  6356. --------V-P2C802C8F--------------------------
  6357. PORT 2C80-2C8F - VESA XGA Video in EISA slot 2
  6358. SeeAlso: PORT 1C80h-1C83h
  6359. --------X-P2C802C83--------------------------
  6360. PORT 2C80-2C83 - EISA board product ID (board in slot 2)
  6361. SeeAlso: PORT 1C80h-1C83h
  6362. --------X-P2C84------------------------------
  6363. PORT 2C84 - EISA CONFIGURATION FLAGS (board in slot 2)
  6364.  
  6365. 2C84  RW  configuration flags (see #P225)
  6366. --------X-P300030FF--------------------------
  6367. PORT 3000-30FF - available for EISA slot 3
  6368. --------S-P32203227--------------------------
  6369. PORT 3220-3227 - serial port 3, description same as 03F8
  6370. --------S-P3228322F--------------------------
  6371. PORT 3228-322F - serial port 4, description same as 03F8
  6372. --------V-P33C033CF--------------------------
  6373. PORT 33C0-33CF - Compaq QVision - BitBLT engine
  6374. --------X-P340034FF--------------------------
  6375. PORT 3400-34FF - available for EISA slot 3
  6376. --------d-P35103513--------------------------
  6377. PORT 3510-3513 - ESDI primary harddisk controller
  6378.  
  6379. 3510  R-  status word
  6380. 3510  -W  command word
  6381. 3512  R-  basic status
  6382. 3512  -W  basic control
  6383. 3513  R-  interrupt status
  6384. 3513  -W  attention
  6385. --------d-P3518351B--------------------------
  6386. PORT 3518-351B - ESDI secondary harddisk controller
  6387.  
  6388. 3518  R-  status word
  6389. 3518  -W  command word
  6390. 351A  R-  basis status
  6391. 351A  -W  basic control
  6392. 351B  R-  interrupt status
  6393. 351B  -W  attention
  6394. --------d-P3540354F--------------------------
  6395. PORT 3540-354F - IBM SCSI (Small Computer System Interface) adapter
  6396. --------d-P3550355F--------------------------
  6397. PORT 3550-355F - IBM SCSI (Small Computer System Interface) adapter
  6398. --------d-P3560356F--------------------------
  6399. PORT 3560-356F - IBM SCSI (Small Computer System Interface) adapter
  6400. --------d-P3570357F--------------------------
  6401. PORT 3570-357F - IBM SCSI (Small Computer System Interface) adapter
  6402. --------V-P36EE------------------------------
  6403. PORT 36EE - ATI Mach8/Mach32 - FIFO OPTION
  6404. SeeAlso: PORT 6AEEh,PORT 6EEEh,PORT 72EEh,PORT 76EEh,PORT 7AEEh,PORT 8EEEh
  6405.  
  6406. 36EE  -W  FIFO option
  6407.         bit 0: generate wait states if FIFO >= half full
  6408.             (0=only when FIFO full)
  6409.         bit 1: force 8-bit host data I/O
  6410. --------X-P380038FF--------------------------
  6411. PORT 3800-38FF - available for EISA slot 3
  6412. --------X-P3C003CFF--------------------------
  6413. PORT 3C00-3CFF - available for EISA slot 3
  6414. --------V-P3C803C8F--------------------------
  6415. PORT 3C80-3C8F - VESA XGA Video in EISA slot 3
  6416.  
  6417. 3C80-3C83  RW    EISA Video ID
  6418. 3C84  RW    EISA Video expansion board control    
  6419. 3C85  RW    EISA Setup control
  6420. 3C88  RW    EISA Video Programmable Option Select 0
  6421. 3C89-3C8F  RW    EISA Video Programmable Option Select 1-7
  6422.  
  6423. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 7C80h-7C8Fh"XGA"
  6424. --------X-P3C803C83--------------------------
  6425. PORT 3C80-3C83 - EISA board product ID (board in slot 3)
  6426. SeeAlso: PORT 1C80h-1C83h
  6427. --------X-P3C84------------------------------
  6428. PORT 3C84 - EISA CONFIGURATION FLAGS (board in slot 3)
  6429.  
  6430. 3C84  RW  configuration flags (see #P225)
  6431. --------X-P400040FF--------------------------
  6432. PORT 4000-40FF - available for EISA slot 4
  6433. ----------P42204227--------------------------
  6434. PORT 4220-4227 - serial port, description same as 03F8
  6435. ----------P4228422F--------------------------
  6436. PORT 4228-422F - serial port, description same as 03F8
  6437. ----------P42E042EF--------------------------
  6438. PORT 42E0-42EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6439.  
  6440. 42E1  RW  GPIB (adapter 2)
  6441. --------V-P42E8------------------------------
  6442. PORT 42E8 - 8514/A and hardware-compatible video cards
  6443. Note:    supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6444.  
  6445. 42E8w R-  Misc. control: Subsystem Status
  6446. 42E8w -W  Misc. control: Subsystem Control (see #P227)
  6447.  
  6448. Bitfields for 8514/A Subsystem Control Register:
  6449. Bit(s)    Description    (Table P227)
  6450.  15-14    GP_RESET
  6451.       W    00 no change
  6452.     01 normal operation
  6453.     02 reset graphics processor and FIFO
  6454.  11   W    enable interrupt when processor idle
  6455.  10   W    enable interrupt on invalid I/O
  6456.  9    W    enable interrupt if inside scissors region
  6457.  8    W    enable vertical blanking interval interrupt
  6458.  6-4 R    monitor ID
  6459.  3    acknowledge idle interrupt (and clear)
  6460.  2    acknowledge invalid I/O interrupt (and clear)
  6461.  1    acknowledge inside-scissors interrupt (and clear)
  6462.  0    acknowledge vertical blanking interrupt (and clear)
  6463. --------X-P440044FF--------------------------
  6464. PORT 4400-44FF - available for EISA slot 4
  6465. --------V-P46E8------------------------------
  6466. PORT 46E8 - VGA video adapter enable
  6467. Note:    IBM uses this port for adapter-card VGAs only, and port 03C3 for
  6468.       motherboard VGA only (see 03C3 for details)
  6469. SeeAlso: PORT 03C3h,PORT 46E8h"8514/A"
  6470.  
  6471. 46E8  rW  Misc. control: enable flags / select ROM page (8514/A) (see #P228)
  6472.  
  6473. Bitfields for VGA miscellaneous control register:
  6474. Bit(s)    Description    (Table P228)
  6475.  7-5    unused or vendor-specific
  6476.  4    setup for POS registers (MCA)
  6477.  3    enable video I/O ports and video buffer
  6478.  2-0    unused or vendor-specific
  6479. --------V-P46E8------------------------------
  6480. PORT 46E8 - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6481. Note:    this register is readable on the C&T 82c480 chipset
  6482. SeeAlso: PORT 46E8h"VGA"
  6483.  
  6484. 46E8w -W  ROM page select (see #P229)
  6485.  
  6486. Bitfields for 8514/A ROM page select register:
  6487. Bit(s)    Description    (Table P229)
  6488.  2-0    select which 4K page of 32K ROM to map at segment C700h
  6489.  3    enable VGA
  6490.  4    select VGA setup mode
  6491.  15-5    reserved (0)
  6492. --------V-P46EE------------------------------
  6493. PORT 46EE - ATI Mach32 - ???
  6494.  
  6495. 46EEw RW  ???
  6496. --------X-P480048FF--------------------------
  6497. PORT 4800-48FF - available for EISA slot 4
  6498. --------V-P4AE84AEF--------------------------
  6499. PORT 4AE8-4AEF - 8514/A and compatible video cards - CRT CONTROL
  6500. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6501.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6502.  
  6503. 4AE8w -W  CRT control: Advanced function control (see also #P230)
  6504.     (02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)
  6505.  
  6506. Bitfields for S3 8514/A-compatible Advanced Function Control register:
  6507. Bit(s)    Description    (Table P230)
  6508.  0    enable enhanced functions
  6509.  1    reserved (1)
  6510.  2    (911-928) screen size (1 = 800x600 or 1024x768, 0=640x480)
  6511.  4    (928+) enable linear addressing
  6512.  5    (928+) enable memory-mapped I/O
  6513.  6    (928 only) enable Write Posting
  6514. --------V-P4AEE------------------------------
  6515. PORT 4AEE - ATI Mach32 - ???
  6516.  
  6517. 4AEEw RW  ???
  6518. --------X-P4C004CFF--------------------------
  6519. PORT 4C00-4CFF - available for EISA slot 4
  6520. --------X-P4C804C83--------------------------
  6521. PORT 4C80-4C83    EISA board product ID (board in slot 4)
  6522. SeeAlso: PORT 1C80h-1C83h
  6523. --------V-P4C804C8F--------------------------
  6524. PORT 4C80-4C8F - VESA XGA Video in EISA slot 4 (see 3C80-3C8F)
  6525. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  6526. --------X-P4C84------------------------------
  6527. PORT 4C84 - EISA CONFIGURATION FLAGS (board in slot 4)
  6528.  
  6529. 4C84  RW  configuration flags (see #P225)
  6530. --------X-P500050FF--------------------------
  6531. PORT 5000-50FF - available for EISA slot 5
  6532. --------S-P52205227--------------------------
  6533. PORT 5220-5227 - serial port, description same as 03F8
  6534. --------S-P5228522F--------------------------
  6535. PORT 5228-522F - serial port, description same as 03F8
  6536. --------V-P52E852E9--------------------------
  6537. PORT 52E8-52E9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 0
  6538. Note:    the 82c480 is an 8514/A-compatible video chipset
  6539. SeeAlso: PORT 56E8h"C&T",PORT 5AE8h"C&T",PORT 5EE8h"C&T"
  6540.  
  6541. 52E8w RW  Extended Configuration Register 0
  6542. --------V-P52EE------------------------------
  6543. PORT 52EE - ATI Mach32 - ROM LOCATION???
  6544. Note:    ATI video BIOS sets this port according to the segment address of the
  6545.       BIOS if >= C000h, as ((seg-C000h) shr 7)
  6546.  
  6547. 52EE  RW  ???
  6548. --------X-P540054FF--------------------------
  6549. PORT 5400-54FF - available for EISA slot 5
  6550. --------V-P56E856E9--------------------------
  6551. PORT 56E8-56E9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 1
  6552. Note:    the 82c480 is an 8514/A-compatible video chipset
  6553. SeeAlso: PORT 52E8h"C&T",PORT 5AE8h"C&T",PORT 5EE8h"C&T"
  6554.  
  6555. 56E8w RW  Extended Configuration Register 1
  6556. --------X-P580058FF--------------------------
  6557. PORT 5800-58FF - available for EISA slot 5
  6558. --------V-P5AE85AE9--------------------------
  6559. PORT 5AE8-5AE9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 2
  6560. Note:    the 82c480 is an 8514/A-compatible video chipset
  6561. SeeAlso: PORT 52E8h"C&T",PORT 56E8h"C&T",PORT 5EE8h"C&T"
  6562.  
  6563. 5AE8w RW  Extended Configuration Register 2
  6564. --------V-P5AEE------------------------------
  6565. PORT 5AEE - ATI Mach32 - ???
  6566.  
  6567. 5AEE  RW  ???
  6568. --------X-P5C005CFF--------------------------
  6569. PORT 5C00-5CFF - available for EISA slot 5
  6570. --------V-P5C805C8F--------------------------
  6571. PORT 5C80-5C8F - VESA XGA Video in EISA slot 5
  6572. SeeAlso: PORT 2C80h-2C8Fh,PORT 4C80h-4C8Fh,PORT 6C80h-6C8Fh
  6573.  
  6574. 5C80d RW  EISA Video ID
  6575. 5C84  RW  EISA Video expansion board control    
  6576. 5C85  RW  EISA Setup control
  6577. 5C88  RW  EISA Video Programmable Option Select 0
  6578. 5C89  RW  EISA Video Programmable Option Select 1
  6579. 5C8A  RW  EISA Video Programmable Option Select 2
  6580. 5C8B  RW  EISA Video Programmable Option Select 3
  6581. 5C8C  RW  EISA Video Programmable Option Select 4
  6582. 5C8D  RW  EISA Video Programmable Option Select 5
  6583. 5C8E  RW  EISA Video Programmable Option Select 6
  6584. 5C8F  RW  EISA Video Programmable Option Select 7
  6585. --------X-P5C805C83--------------------------
  6586. PORT 5C80-5C83    EISA board product ID (board in slot 5)
  6587. SeeAlso: PORT 1C80h-1C83h
  6588. --------X-P5C84------------------------------
  6589. PORT 5C84 - EISA CONFIGURATION FLAGS (board in slot 5)
  6590.  
  6591. 5C84  RW  configuration flags (see #P225)
  6592. --------V-P5EE85EE9--------------------------
  6593. PORT 5EE8-5EE9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 3
  6594. Note:    the 82c480 is an 8514/A-compatible video chipset
  6595. SeeAlso: PORT 52E8h"C&T",PORT 56E8h"C&T",PORT 5AE8h"C&T"
  6596.  
  6597. 5EE8w RW  Extended Configuration Register 3
  6598. --------X-P600060FF--------------------------
  6599. PORT 6000-60FF - available for EISA slot 6
  6600. ----------P62E062EF--------------------------
  6601. PORT 62E0-62EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6602.  
  6603. 62E1  RW  GPIB (adapter 3)
  6604. --------V-P63C063CF--------------------------
  6605. PORT 63C0-63CF - Compaq QVision - BitBLT engine
  6606. --------X-P640064FF--------------------------
  6607. PORT 6400-64FF - available for EISA slot 6
  6608. --------X-P680068FF--------------------------
  6609. PORT 6800-68FF - available for EISA slot 6
  6610. --------V-P6AEE------------------------------
  6611. PORT 6AEE - ATI Mach8/Mach32 - MAXIMUM WAIT STATES
  6612. SeeAlso: PORT 36EEh,PORT 6EEEh,PORT 76EEh,PORT 7AEEh,PORT 8EEEh
  6613.  
  6614. 6AEE  RW  maximum wait states (see #P231)
  6615.  
  6616. Bitfields for ATI Mach8/Mach32 wait state configuration:
  6617. Bit(s)    Description    (Table P231)
  6618.  10    leave alone ("PASSTHROUGH_OVERRIDE")
  6619.  9    enable for 16-bit I/O
  6620.  8    0=horizontal degree-mode line draws
  6621. --------X-P6C006CFF--------------------------
  6622. PORT 6C00-6CFF - available for EISA slot 6
  6623. --------X-P6C806C83--------------------------
  6624. PORT 6C80-6C83 - EISA board product ID (board in slot 6)
  6625. SeeAlso: PORT 1C80h-1C83h
  6626. --------V-P6C806C8F--------------------------
  6627. PORT 6C80-6C8F - VESA XGA Video in EISA slot 1
  6628. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 5C80h-5C8Fh"XGA"
  6629.  
  6630. 6C80d RW  EISA Video ID (see PORT 1C80h-1C83h)
  6631. 6C84  RW  EISA Video expansion board control    
  6632. 6C85  RW  EISA Setup control
  6633. 6C88  RW  EISA Video Programmable Option Select 0
  6634. 6C89  RW  EISA Video Programmable Option Select 1
  6635. 6C8A  RW  EISA Video Programmable Option Select 2
  6636. 6C8B  RW  EISA Video Programmable Option Select 3
  6637. 6C8C  RW  EISA Video Programmable Option Select 4
  6638. 6C8D  RW  EISA Video Programmable Option Select 5
  6639. 6C8E  RW  EISA Video Programmable Option Select 6
  6640. 6C8F  RW  EISA Video Programmable Option Select 7
  6641. --------X-P6C84------------------------------
  6642. PORT 6C84 - EISA CONFIGURATION FLAGS (board in slot 6)
  6643.  
  6644. 6C84  RW  configuration flags (see #P225)
  6645. --------V-P6EEE------------------------------
  6646. PORT 6EEE - ATI Mach8/Mach32 - ENGINE VIDEO BUFFER OFFSET LOW
  6647. SeeAlso: PORT 72EEh
  6648.  
  6649. 6AEEw -W  low 16 bits of video buffer starting offset
  6650. --------X-P700070FF--------------------------
  6651. PORT 7000-70FF - available for EISA slot 7
  6652. --------V-P72EE------------------------------
  6653. PORT 72EE - ATI Mach8/Mach32 - ENGINE VIDEO BUFFER OFFSET HIGH
  6654. SeeAlso: PORT 6EEEh
  6655.  
  6656. 72EE  -W  high bits of video buffer starting offset
  6657.         bits 1-0 for Mach-8
  6658.         bits 3-0 for Mach-32
  6659. --------V-P72EE------------------------------
  6660. PORT 72EE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (LEFT)
  6661. SeeAlso: PORT 76EEh"BOUNDS",PORT 7AEEh"BOUNDS",PORT 7EEEh"BOUNDS"
  6662.  
  6663. 72EEw R-  left edge of bounding box for points written via Line Draw register
  6664. --------X-P740074FF--------------------------
  6665. PORT 7400-74FF - available for EISA slot 7
  6666. --------V-P76EE------------------------------
  6667. PORT 76EE - ATI Mach8/Mach32 - ENGINE DISPLAY PITCH
  6668. SeeAlso: PORT 6AEEh,PORT 7AEEh
  6669.  
  6670. 76EE  -W  display pitch
  6671. --------V-P76EE------------------------------
  6672. PORT 76EE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (TOP)
  6673. SeeAlso: PORT 72EEh"BOUNDS",PORT 7AEEh"BOUNDS",PORT 7EEEh"BOUNDS"
  6674.  
  6675. 76EEw R-  top edge of bounding box for points written via Line Draw register
  6676. --------X-P780078FF--------------------------
  6677. PORT 7800-78FF - available for EISA slot 7
  6678. --------V-P7AEE------------------------------
  6679. PORT 7AEE - ATI Mach8/Mach32 - EXTENDED GRAPHICS ENGINE CONGIFURATION
  6680. SeeAlso: PORT 8EEEh
  6681.  
  6682. 7AEEw -W  extended graphics engine configuration (see #P232)
  6683.  
  6684. Bitfields for Mach8/Mach32 extended graphics engine configuration:
  6685. Bit(s)    Description    (Table P232)
  6686.  15    drawing pixel size to be written next (68800-6 only)
  6687.  14    enable 8-bit DAC (Mach-32 only)
  6688.  13-12    DAC address inputs RS(3:2) control (Mach-32 only)
  6689.  11    display pixel size to be written next (68800-6 only)
  6690.  10    24-bit color order (Mach-32 only)
  6691.     0 = RGB
  6692.     1 = BGR
  6693.  9    24-bit color configuration: pixels use 4 bytes instead of three
  6694.  8    DAC processes four pixels in parallel (Mach-32 only)
  6695.  7-6    16-bits-per-color word format (Mach-32 only)
  6696.     00 RGB(5,5,5)
  6697.     01 RGB(5,6,5)
  6698.     10 RGB(6,5,5)
  6699.     11 RGB(6,6,4)
  6700.  5-4    number of bits per pixel (Mach-32 only)
  6701.     00 four
  6702.     01 eight
  6703.     10 sixteen
  6704.     11 twenty-four
  6705.  3    report monitor alias instead of actual monitor
  6706.  2-0    alternate monitor ID (alias)
  6707. --------V-P7AEE------------------------------
  6708. PORT 7AEE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (RIGHT)
  6709. SeeAlso: PORT 72EEh"BOUNDS",PORT 76EEh"BOUNDS",PORT 7EEEh"BOUNDS"
  6710.  
  6711. 7AEEw R-  right edge of bounding box for points written via Line Draw register
  6712. --------X-P7C007CFF--------------------------
  6713. PORT 7C00-7CFF - available for EISA slot 7
  6714. --------X-P7C807C83--------------------------
  6715. PORT 7C80-7C83 - EISA board product ID (board in slot 7)
  6716. SeeAlso: PORT 1C80h-1C83h
  6717. --------V-P7C807C8F--------------------------
  6718. PORT 7C80-7C8F - VESA XGA Video in EISA slot 7
  6719. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  6720.  
  6721. 7C80-7C83  RW    EISA Video ID
  6722. 7C84  RW    EISA Video expansion board control    
  6723. 7C85  RW    EISA Setup control
  6724. 7C88  RW    EISA Video Programmable Option Select 0
  6725. 7C89-7C8F  RW    EISA Video Programmable Option Select 1-7
  6726. --------X-P7C84------------------------------
  6727. PORT 7C84 - EISA CONFIGURATION FLAGS (board in slot 7)
  6728.  
  6729. 7C84  RW  configuration flags (see #P225)
  6730. --------V-P7EEE------------------------------
  6731. PORT 7EEE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (RIGHT)
  6732. SeeAlso: PORT 72EEh"BOUNDS",PORT 76EEh"BOUNDS",PORT 7AEEh"BOUNDS"
  6733.  
  6734. 7EEEw R-  right edge of bounding box for points written via Line Draw register
  6735. --------X-P800080FF--------------------------
  6736. PORT 8000-80FF - available for EISA slot 8
  6737. ----------P82E082EF--------------------------
  6738. PORT 82E0-82EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6739.  
  6740. 82E1  RW  GPIB (adapter 4)
  6741. --------V-P82E882EF--------------------------
  6742. PORT 82E8-82EF - 8514/A and compatible video cards - DRAWING CONTROL
  6743. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6744.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6745. SeeAlso: PORT 86E8h
  6746.  
  6747. 82E8w -W  drawing control: current Y position
  6748. --------S-P82F882FF--------------------------
  6749. PORT 82F8-82FF - serial port, description same as 03F8
  6750. --------V-P83C083CF--------------------------
  6751. PORT 83C0-83CF - Compaq QVision - Line Draw Engine
  6752. --------V-P83C4------------------------------
  6753. PORT 83C4 - Compaq Qvision EISA - Virtual Controller Select
  6754. --------V-P83C683C9--------------------------
  6755. PORT 83C6-83C9 - Compaq Qvision EISA - DAC color registers
  6756. --------S-P83F883FF--------------------------
  6757. PORT 83F8-83FF - serial port, description same as 03F8
  6758. --------X-P840084FF--------------------------
  6759. PORT 8400-84FF - available for EISA slot 8
  6760. --------V-P86E886EF--------------------------
  6761. PORT 86E8-86EF - 8514/A and compatible video cards - DRAWING CONTROL
  6762. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6763.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6764. SeeAlso: PORT 82E8h,PORT 8AE8h
  6765.  
  6766. 86E8w -W  drawing control: current X position
  6767. --------X-P880088FF--------------------------
  6768. PORT 8800-88FF - available for EISA slot 8
  6769. --------V-P8AE88AEF--------------------------
  6770. PORT 8AE8-8AEF - 8514/A and compatible video cards - DRAWING CONTROL
  6771. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6772.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6773. SeeAlso: PORT 82E8h,PORT 86E8h
  6774.  
  6775. 8AE8w -W  drawing control: destination Y position / axial step constant
  6776. Note:    this port may be read on S3 chipsets
  6777. --------X-P8C008CFF--------------------------
  6778. PORT 8C00-8CFF - available for EISA slot 8
  6779. --------X-P8C808C83--------------------------
  6780. PORT 8C80-8C83 - EISA board product ID (board in slot 8)
  6781. SeeAlso: PORT 1C80h-1C83h
  6782. --------X-P8C84------------------------------
  6783. PORT 8C84 - EISA CONFIGURATION FLAGS (board in slot 8)
  6784.  
  6785. 8C84  RW  configuration flags (see #P225)
  6786. --------V-P8EE88EEF--------------------------
  6787. PORT 8EE8-8EEF - 8514/A and compatible video cards - DRAWING CONTROL
  6788. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6789.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6790.  
  6791. 8EE8w -W  drawing control: destination X position / axial step constant
  6792. --------V-P8EEE------------------------------
  6793. PORT 8EEE - ATI Mach32 - READ EXTENDED GRAPHICS CONFIGURATION
  6794. SeeAlso: PORT 72EEh
  6795.  
  6796. 8EEE  R-  read extended graphics configuration (see #P232)  
  6797. --------X-P900090FF--------------------------
  6798. PORT 9000-90FF - available for EISA slot 9
  6799. --------V-P92E892EF--------------------------
  6800. PORT 92E8-92EF - 8514/A and compatible video cards - DRAWING CONTROL
  6801. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6802.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6803.  
  6804. 92E8w -W  drawing control: Bresenham error term
  6805. --------X-P940094FF--------------------------
  6806. PORT 9400-94FF - available for EISA slot 9
  6807. --------V-P96E896EF--------------------------
  6808. PORT 96E8-96EF - 8514/A and hardware-compatible video cards - DRAWING CONTROL
  6809. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6810.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6811.  
  6812. 96E8w R-  enter WD Enhanced Mode
  6813. 96E8w -W  drawing control: major axis pixel count
  6814. --------X-P980098FF--------------------------
  6815. PORT 9800-98FF - available for EISA slot 9
  6816. --------V-P9AE89AE9--------------------------
  6817. PORT 9AE8-9AE9 - 8514/A Graphics Processor Status
  6818. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6819.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6820.  
  6821. 9AE8w R-  drawing control: graphic processor status (see #P233)
  6822. 9AE8w -W  drawing control: command register (see #P234)
  6823.  
  6824. Bitfields for 8514/A graphic processor status:
  6825. Bit(s)    Description    (Table P233)
  6826.  15-10    reserved
  6827.  9    hardware busy
  6828.  8    data ready
  6829.  7-0    status of queue (0=empty, 1=filled)
  6830.     (each bit represents a position in queue)
  6831. SeeAlso: #P234
  6832.  
  6833. Bitfields for 8514/A command register :
  6834. Bit(s)    Description    (Table P234)
  6835.  15-13    command
  6836.     000 = no operation
  6837.     001 = draw vector
  6838.     010 = fast rectangle fill
  6839.     011 = rectangle fill vertical #1
  6840.     100 = rectangle fill vertical #2 (4 pixels)
  6841.     101 = draw vector, 1 pixel/scanline
  6842.     110 = copy rectangle
  6843.     111 = reserved
  6844.  12    byte sequence (0=high byte first, 1=low byte first)
  6845.  11-10    reserved
  6846.  9    enable 16-bit write access (16BIT)
  6847.  8    0=use 8514/A data, 1=pixel data trans reg (PCDATA)
  6848.  7    0=draw vector above, 1=draw vector below (INC_Y)
  6849.  6    0=x is maj. axis, 1=y is maj. axis (YMAJAXIS)
  6850.  5    0=draw vector left, 1=draw vector right (INC_X)
  6851.  4    0=move only, 1=draw and move (DRAW)
  6852.  3    0=Bresenham line, 1=direct vector (LINETYPE)
  6853.  2    0=draw last pixel, 1=don't draw last pixel (LASTPIX)
  6854.  1    0=single pixel, 1=4pixel (PLANAR)
  6855.  0    0=read data, 1=write data (RD/WR)
  6856. SeeAlso: #P233
  6857. --------V-P9AEE------------------------------
  6858. PORT 9AEE - ATI Mach8/Mach32 - LINEDRAW INDEX REGISTER
  6859. SeeAlso: PORT FEEEh
  6860.  
  6861. 9AEE  -W  linedraw index register (specifies interpretation of PORT FEEEh)
  6862.       (see #P235)
  6863.  
  6864. (Table P235)
  6865. Values for ATI Mach8/Mach32 Linedraw Index Register:
  6866.  00h    set current X
  6867.  01h    set current Y
  6868.  02h    set Line End X
  6869.  03h    set Line End Y, draw line, and reset register to 02h
  6870.  04h    set current X (perform moves instead of draws)
  6871.  05h    set current Y and reset register to 04h
  6872. --------X-P9C009CFF--------------------------
  6873. PORT 9C00-9CFF - available for EISA slot 9
  6874. --------X-P9C809C83--------------------------
  6875. PORT 9C80-9C83 - EISA board product ID (board in slot 9)
  6876. SeeAlso: PORT 1C80h-1C83h
  6877. --------X-P9C84------------------------------
  6878. PORT 9C84 - EISA CONFIGURATION FLAGS (board in slot 9)
  6879.  
  6880. 9C84  RW  configuration flags (see #P225)
  6881. --------V-P9EE8------------------------------
  6882. PORT 9EE8 - 8514/A and compatible video cards - SHORT STROKE
  6883. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6884.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6885.  
  6886. 9EE8w -W  short line vector transfer
  6887. --------S-PA220------------------------------
  6888. PORT A220 - soundblaster support in AMI Hi-Flex BIOS  ????
  6889. ----------PA2E0A2EF--------------------------
  6890. PORT A2E0-A2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  6891.  
  6892. A2E1  RW  GPIB (adapter 5)
  6893. --------V-PA2E8A2EF--------------------------
  6894. PORT A2E8-A2EF - 8514/A and compatible video cards - DRAWING CONTROL
  6895. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6896.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6897. SeeAlso: PORT A6E8h
  6898.  
  6899. A2E8w -W  drawing control: background color
  6900. --------V-PA2EEA2EF--------------------------
  6901. PORT A2EE-A2EF - ATI Mach8/Mach32 - LINE DRAW OPTIONS
  6902. SeeAlso: PORT 8EEEh,PORT CEEEh
  6903.  
  6904. A2EEw RW  line drawing options (see #P236)
  6905.  
  6906. Bitfields for ATI Mach8/Mach32 line drawing options:
  6907. Bit(s)    Description    (Table P236)
  6908.  10-9    clipping mode
  6909.     00 disable clip exception
  6910.     01 stroked plain lines
  6911.     10 polygon boundary lines
  6912.     11 patterned lines
  6913.  8    reset all Bounds Accumulator registers
  6914.  7-5    OCTANT: direction for BitBlts or lines
  6915.  3    direction specification
  6916.     0 = Bresenham/Octant
  6917.         bit 7: increment Y
  6918.         bit 6: Y is major axis instead of X
  6919.         bit 5: increment X
  6920.     1 = line-length and degrees
  6921.         OCTANT field species N*45 degrees
  6922.  2    do NOT draw last pixel of a line
  6923.  1    polyline draw
  6924. --------V-PA6E8A6EF--------------------------
  6925. PORT A6E8-A6EF - 8514/A and compatible video cards - DRAWING CONTROL
  6926. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6927.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6928. SeeAlso: PORT A2E8h
  6929.  
  6930. A6E8w -W  drawing control: foreground color
  6931. --------V-PAAE8AAEF--------------------------
  6932. PORT AAE8-AAEF - 8514/A and compatible video cards - WRITE MASK
  6933. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6934.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6935. SeeAlso: PORT AEE8h
  6936.  
  6937. AAE8w -W  drawing control: write mask
  6938. --------V-PAEE8AEEF--------------------------
  6939. PORT AEE8-AEEF - 8514/A and compatible video cards - READ MASK
  6940. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6941.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6942. SeeAlso: PORT AAE8h
  6943.  
  6944. AEE8w -W  drawing control: read mask
  6945. --------V-PAFFF------------------------------
  6946. PORT AFFF - VIDEO REGISTER
  6947.  
  6948. AFFF  RW  plane 0-3 system latch (video register)
  6949. --------S-PB220B227--------------------------
  6950. PORT B220-B227 - serial port, description same as 03F8
  6951. --------S-PB228B22F--------------------------
  6952. PORT B228-B22F - serial port, description same as 03F8
  6953. --------V-PB2E8B2EF--------------------------
  6954. PORT B2E8-B2EF - 8514/A and compatible video cards - COLOR COMPARE
  6955. Notes:    supported by ATI Graphics Ultra
  6956.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6957.  
  6958. B2E8w -W  drawing control: color compare
  6959. --------V-PB2EE------------------------------
  6960. PORT B2EE - ATI Mach32 - ???
  6961.  
  6962. B2EEw RW  ???
  6963. --------V-PB6E8B6EF--------------------------
  6964. PORT B6E8-B6EF - 8514/A and compatible video cards - BACKGROUND MIX
  6965. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6966.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6967. SeeAlso: PORT BAE8h
  6968.  
  6969. B6E8w -W  drawing control: background mix
  6970. --------V-PB6EE------------------------------
  6971. PORT B6EE - ATI Mach32 - ???
  6972.  
  6973. B6EEw RW  ???
  6974. --------V-PBAE8BAEF--------------------------
  6975. PORT BAE8-BAEF - 8514/A and compatible video cards - FOREGROUND MIX
  6976. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6977.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6978. SeeAlso: PORT B6E8h
  6979.  
  6980. BAE8w -W  drawing control: foreground mix
  6981. --------V-PBAEE------------------------------
  6982. PORT BAEE - ATI Mach32 - ???
  6983.  
  6984. BAEEw RW  ???
  6985. --------V-PBEE8BEEF--------------------------
  6986. PORT BEE8-BEEF - 8514/A and compatible video cards - MULTIFUNCTION CONTROL
  6987. Notes:    supported by ATI Mach8 and Mach32 chipsets
  6988.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  6989.  
  6990. BEE8w -W  drawing control: multi-function control
  6991.       (index in bits 15-12, data in bits 11-0) (see #P237)
  6992. BEE8w R-  (S3) value of register specified by current value of multi-function
  6993.       index 0Fh
  6994.  
  6995. (Table P237)
  6996. Values for index into 8514/A multi-function drawing control registers:
  6997.  00h RW minor axis pixel count
  6998.  01h RW top scissors
  6999.  02h RW left scissors
  7000.  03h RW bottom scissors
  7001.  04h RW right scissors
  7002.  05h -W memory control register
  7003.  08h -W fixed pattern low
  7004.  09h -W fixed pattern high
  7005.  0Ah RW data manipulation control
  7006. ---S3 chipsets---
  7007.  0Dh RW (S3 864/964) miscellaneous 2
  7008.  0Eh RW (S3 801+) miscellaneous
  7009.  0Fh -W (S3 801/805/928) read register select (see #P238)
  7010.  
  7011. (Table P238)
  7012. Values for S3 multifunction read select register:
  7013.  00h    PORT BEE8h register 00h 
  7014.  01h    PORT BEE8h register 01h 
  7015.  02h    PORT BEE8h register 02h 
  7016.  03h    PORT BEE8h register 03h 
  7017.  04h    PORT BEE8h register 04h 
  7018.  05h    PORT BEE8h register 0Ah 
  7019.  06h    PORT BEE8h register 0Eh 
  7020.  07h    PORT 9AE8h (bits 11-0 only)
  7021. ---S3 864/964 only---
  7022.  08h    PORT 42E8h (bits 11-0 only)
  7023.  09h    PORT 46E8h
  7024.  0Ah    PORT BEE8h register 0Dh
  7025. SeeAlso: #P237
  7026. ----------PC000C004--------------------------
  7027. PORT C000-C004 - Intel Pentium mboard ("Neptune" chipset)
  7028. SeeAlso: PORT C050h,PORT C200h-C204h,INT 15/AX=DA8Ch,#0628 at INT 1A/AX=B10Ah
  7029. --------X-PC000CFFF--------------------------
  7030. PORT C000-CFFF - PCI Configuration Mechanism 2 - CONFIGURATION SPACE
  7031. Note:    to access the configuration space, write the target bus number to
  7032.       PORT 0CFAh, then write to the Configuration Space Enable register
  7033.       (PORT 03F8h), and finally read or write the appropriate I/O
  7034.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  7035.       'rr' in physical device 'x's configuration data)
  7036. SeeAlso: PORT 0CF8h"Mechanism 2",PORT 0CFAh"Mechanism 2"
  7037. SeeAlso: #0628 at INT 1A/AX=B10Ah
  7038. --------X-PC008------------------------------
  7039. PORT C008 - Intel Pentium mboard ("Neptune" chipset) - CHIPSET REVISION
  7040. Desc:    the host/PCI bridge revision ID register is visible on this port when
  7041.       the PCI configuration space has been opened via ports 0CF8h and 0CFAh
  7042. SeeAlso: PORT 0CF8h,PORT 0CFAh,PORT C000h-C004h,PORT C050h,PORT C065h
  7043. --------X-PC050------------------------------
  7044. PORT C050 - Intel Pentium mboard ("Neptune" chipset)
  7045. SeeAlso: PORT C052h
  7046.  
  7047. C050  RW  ???
  7048.       bit 0: ???
  7049.       bit 1: ???
  7050.       bit 2: enable secondary (L2) cache
  7051. --------X-PC051------------------------------
  7052. PORT C051 - Intel Pentium mboard ("Neptune" chipset) - DETURBO SPEED CONTROL
  7053. SeeAlso: PORT 0CF9h
  7054.  
  7055. C051  RW  slowdown factor when in de-turbo mode
  7056. --------X-PC052------------------------------
  7057. PORT C052 - Intel Pentium mboard ("Neptune" chipset)
  7058. SeeAlso: PORT 0CF8h,PORT 0CFAh,PORT C050h,PORT C059h,PORT C065h
  7059.  
  7060. C052  RW  bit 0: ???
  7061.       bit 1: ???
  7062.       bits 6,7: ???
  7063. --------X-PC054------------------------------
  7064. PORT C054 - Intel Pentium mboard ("Neptune" chipset)
  7065. SeeAlso: PORT 0CF8h,PORT 0CFAh
  7066.  
  7067. C054  RW  bit 2: ??? (set immediately upon booting)
  7068. --------X-PC059------------------------------
  7069. PORT C059 - Intel Pentium mboard ("Neptune" chipset)
  7070. --------X-PC065------------------------------
  7071. PORT C065 - Intel "Neptune" chipset - MEMORY SIZE???
  7072. SeeAlso: INT 15/AX=DA88h
  7073.  
  7074. C065  R      system memory in MB??? (10h on a 16MB machine)
  7075. --------d-PC100C1FF--------------------------
  7076. PORT C100-C1FF - Intel Pentium mboard - PCTech RZ1000 EIDE controller
  7077. Desc:    the PCI configuration registers for the EIDE controller are visible
  7078.       on these ports when the PCI configuration space has been opened via
  7079.       ports 0CF8h and 0CFAh
  7080. SeeAlso: PORT 03F0h"RZ1000",PORT 0CF8h,#0628 at INT 1A/AX=B10Ah
  7081. ----------PC200C204--------------------------
  7082. PORT C200-C204 - Intel Pentium mboard ("Neptune" chipset)
  7083. Desc:    the PCI configuration registers for the motherboard chipset are visible
  7084.       on these ports when the PCI configuration space has been opened via
  7085.       ports 0CF8h and 0CFAh
  7086. SeeAlso: #0628 at INT 1A/AX=B10Ah
  7087. --------S-PC220C227--------------------------
  7088. PORT C220-C227 - serial port, description same as 03F8
  7089. --------S-PC228C22F--------------------------
  7090. PORT C228-C22F - serial port, description same as 03F8
  7091. ----------PC244------------------------------
  7092. PORT C244 - Intel Pentium mboard ("Neptune" chipset)
  7093. ----------PC2E0C2EF--------------------------
  7094. PORT C2E0-C2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7095.  
  7096. C2E1  RW  GPIB (adapter 6)
  7097. --------V-PC2EE------------------------------
  7098. PORT C2EE - ATI Mach32 - ???
  7099.  
  7100. C2EEw RW  ???
  7101. --------V-PC6EE------------------------------
  7102. PORT C6EE - ATI Mach32 - SHORT-STROKE VECTOR
  7103.  
  7104. C6EEw -W  short-stroke vector
  7105. --------V-PCAEE------------------------------
  7106. PORT CAEE - ATI Mach32 - ???
  7107.  
  7108. CAEEw RW  ???
  7109. ----------PCEEE------------------------------
  7110. PORT CEEE - ATI Mach8/Mach32 - DATAPATH CONFIGURATION
  7111. SeeAlso: PORT 8EEEh
  7112.  
  7113. CEEEw -W  datapath configuration (see #P239)
  7114.  
  7115. Bitfields for ATI Mach8/Mach32 datapath configuration:
  7116. Bit(s)    Description    (Table P239)
  7117.  15-13    foreground color source
  7118.     000 background color reg
  7119.     001 foreground color reg
  7120.     010 pixel transfer reg
  7121.     011 VRAM BitBlt source
  7122.     101 color pattern shift register
  7123.  12    least-significant byte first
  7124.  9    data width is 16 bits instead of 8 bits
  7125.  8-7    background color source
  7126.     00 background color reg
  7127.     01 foreground color reg
  7128.     10 pixel transfer reg
  7129.     11 VRAM BitBlt source
  7130.  6-5    monochrome data source
  7131.     00 always one
  7132.     01 mono pattern register
  7133.     10 pixel transfer register
  7134.     11 VRAM BitBlt source
  7135.  4    enable drawing
  7136.  2    read color data instead of monochrome data
  7137.  1    enable polygon fill BitBlt
  7138.  0    write data to drawing trajectory instead of reading from trajectory
  7139. --------S-PD220D227--------------------------
  7140. PORT D220-D227 - serial port, description same as 03F8
  7141. --------S-PD228D22F--------------------------
  7142. PORT D228-D22F - serial port, description same as 03F8
  7143. --------V-PD2EE------------------------------
  7144. PORT D2EE - ATI Mach32 - ???
  7145.  
  7146. D2EEw RW  ???
  7147. --------V-PDAEEDAEF--------------------------
  7148. PORT DAEE-DAEF - ATI Mach8/Mach32 - SCISSORS REGION (LEFT)
  7149. SeeAlso: PORT DEEEh"SCISSORS",PORT E2EEh"SCISSORS",PORT E6EEh"SCISSORS"
  7150.  
  7151. DAEEw -W  left edge of "scissors" drawing area (bits 11-0)
  7152. --------V-PDEEEDEEF--------------------------
  7153. PORT DEEE-DEEF - ATI Mach8/Mach32 - SCISSORS REGION (TOP)
  7154. SeeAlso: PORT DAEEh"SCISSORS",PORT E2EEh"SCISSORS",PORT E6EEh"SCISSORS"
  7155.  
  7156. DEEEw -W  top edge of "scissors" drawing area (bits 11-0)
  7157. ----------PE2E0E2EF--------------------------
  7158. PORT E2E0-E2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7159.  
  7160. E2E1  RW  GPIB (adapter 7)
  7161. --------V-PE2E8E2EF--------------------------
  7162. PORT E2E8-E2EF - 8514/A and compatible video cards - PIXEL DATA TRANSFER
  7163. Notes:    supported by ATI Graphics Ultra
  7164.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7165.  
  7166. E2E8w -W  drawing control: pixel data transfer
  7167. E2EAw rW  drawing control: pixel data transfer (S3 801+) for 32-bit transfers
  7168. --------V-PE2EEE2EF--------------------------
  7169. PORT E2EE-E2EF - ATI Mach8/Mach32 - SCISSORS REGION (BOTTOM)
  7170. SeeAlso: PORT DAEEh"SCISSORS",PORT DEEEh"SCISSORS",PORT E6EEh"SCISSORS"
  7171.  
  7172. E2EEw -W  bottom edge of "scissors" drawing area (bits 11-0)
  7173. --------V-PE6EEE6EF--------------------------
  7174. PORT E6EE-E6EF - ATI Mach8/Mach32 - SCISSORS REGION (RIGHT)
  7175. SeeAlso: PORT DAEEh"SCISSORS",PORT DEEEh"SCISSORS",PORT E2EEh"SCISSORS"
  7176.  
  7177. E6EEw -W  right edge of "scissors" drawing area (bits 11-0)
  7178. --------V-PFEEEFEEF--------------------------
  7179. PORT FEEE-FEEF - ATI Mach8/Mach32 - DIRECT LINE DRAW REGISTER
  7180. SeeAlso: PORT 9AEEh
  7181.  
  7182. FEEEw -W  direct line-draw register
  7183. --------!---CREDITS--------------------------
  7184. Chuck Proctor        <71534.2302@CompuServe.COM>
  7185. Richard W. Watson    <73042.1420@CompuServe.COM>
  7186. Matthias Paul        <mpaul@ibh.rwth-aachen.de>
  7187.  
  7188. [Some of the information in this list was extracted from Frank van Gilluwe's
  7189. _The_Undocumented_PC_, a must-have book for anyone programming down to the
  7190. "bare metal" of a PC.]
  7191.  
  7192. [Some of the information in this list from the shareware version of Dave
  7193. Williams' DOSREF, v3.0]
  7194.  
  7195. [8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM]
  7196.  
  7197. [Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_
  7198. _Reference_Guide_, second edition (October 1993).  Compaq part number
  7199. 073A/0693.  Much more to come!]
  7200.  
  7201. [AMI keyboard controller port 0064 commands from the American Megatrends, Inc.
  7202. _Version_KF_and_KH_Keyboard_Controller_BIOS_Reference_, available on the
  7203. AMI BBS and american.megatrends.com as KFKHMAN.ZIP.]
  7204.  
  7205. [Various chipset infos from "Het BIOS Boekje" 2nd edition, by Alle Metzlar,
  7206. ISBN 90-72260-59-7 (1995).]
  7207.  
  7208. [ATA-3 info from "AT Attachment-3 Interface (ATA-3) Revision 1", dated
  7209. April 21, 1995.]
  7210.  
  7211. [Some additional EISA info from _EISA_System_Architecture_ (second edition),
  7212. by MindShare, Inc. (Addison-Wesley 1995, ISBN 0-201-40995-X).]
  7213.  
  7214. [AMI BIOS diagnostics codes (port 0080h) from file CHECKPTS on AMI BBS.]
  7215.  
  7216. [Some S3 and additional ATI Mach8/Mach32 info from Richard F. Ferraro's
  7217. _Programmer's_Guide_to_the_EGA,_VGA,_and_Super_VGA_Cards_, third edition.]
  7218. --------!---Admin----------------------------
  7219. Highest Table Number = P239
  7220. --------!---FILELIST-------------------------
  7221. Please redistribute all of the files comprising the interrupt list (listed at
  7222. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  7223. quartet of archives named INTER52A through INTER52D (preferably the original
  7224. authenticated PKZIP archives), and the utility programs in a two additional
  7225. archives called INTER52E.ZIP and INTER52F.ZIP
  7226.  
  7227. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  7228. --------!---CONTACT_INFO---------------------
  7229. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  7230. UUCP: {uunet,harvard}!pobox.com!ralf
  7231. FIDO: Ralf Brown 1:129/26.1
  7232.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  7233.     unless you address it to me)
  7234. CIS:  >INTERNET:ralf@pobox.com
  7235.